问题标签 [rcpparmadillo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 犰狳比 RcppArmadillo 慢
我试图理解为什么调用 arma::pinv 的 Armadillo与通过 RcppArmadillo 在 R中调用相同的函数相比,直接在 c++ 中调用(Visual Studio)需要更多的时间。
在 RI 中,编译/生成包时只是遵循了一种超级基本的方法
在 VisualStudio 中,我使用 NuGet 包管理器安装了“犰狳代码”和“OpenBLAS”,但我也尝试下载犰狳并使用“附加包含目录”包含库:结果相同。
我的感觉是我没有有效地使用 LAPACK 和/或 BLAS。你有什么想法?提前非常感谢!
在 VS 中运行的 c++ 代码如下,在 i = 1000(迭代)和 n = 100(矩阵大小)的情况下运行大约需要 25 秒
用于 RccpArmadillo 的 cpp 函数如下所示,运行 i = 1000(迭代)和 n = 100(矩阵大小)大约需要 8 秒:
r - 在 RcppArmadillo 中处理极大且稀疏的矩阵
我正在尝试将对角矩阵传递W
给 Rcpp 函数。问题是它W
的大小为 1,000,000 x 1,000,000,(我认为)远远超出 Armadillo 允许的限制(即使使用启用了 ARMA_64BIT_WORD 的 C++11 编译器)。
由于W
是对角矩阵,因此非常稀疏。出于这个原因,我首先生成了一个密集表示W
(使用 Matrix 包函数对角线)。然后我将这些压缩表示传递W
给我的函数。我认为这将解决任何内存问题。这是一个小例子:
C++ 代码:
代码:
但是,尽管使用了压缩表示,我仍然收到此错误。
有什么方法可以处理W
,以便我可以将它传递到test
并执行矩阵运算?
此处提出了类似的问题。但是,我认为@Dirk 提供的解决方案在这种情况下有效,因为与我的W
.
r - 无法使用 R 4.0.3 和 RedHat Linux 6.10 安装 RcppArmadillo
我刚刚在计算集群上的本地目录中安装了 R 4.0.3。
我正在使用 gcc 5.1.0 并且我设置了 Sys.setenv("PKG_CXXFLAGS"="-std=c++11")
Rcpp 安装正常。
但是使用 RcppArmadillo,我会收到数百行这样的错误消息
我完全迷路了。请帮忙!
r - 生成多个邻接矩阵的更快方法
假设我有一个P
如下所示的任意概率矩阵,
对于单个邻接矩阵,它的生成方式类似于(未加权,无自放样)
但是,如果我需要生成100个邻接矩阵怎么办,所以我写下以下代码
就我而言,n >10000
andT = 1000
非常慢,有什么更好的办法来改进它吗?
c++ - 为什么这两个函数给出不同的结果?
我使用包定义了两个函数RcppArmadillo
并将它们保存到文件cxxFuns.cpp
中。f01
和之间的唯一区别f02
是 的位置V(0, 0)
:
据我了解,该功能f01
应该f02
给出相同的结果。然而,测试并没有显示出预期的结果。
发生了什么?
r - R中线性代数函数的Rcpp端口
以下是我试图移植到 Rcpp 的对称非负矩阵分解的目标函数:
这是我在 Rcpp 翻译中的刺探(肯定有很多错误):
什么是正确(和最快)的单核翻译?
理论背景:这个函数的迭代驱动收敛到一个H
近似HH^T
等于的W
。有关背景,请参阅此问题(以及我的答案)。
r - 无法编译 RcppArmadillo
RcppArmadillo 是我尝试安装的一些软件包的依赖项。我在编译 RcppArmadillo 版本 0.10.1.0.0 时收到此错误(这是 R 在发现 RcppArmadillo 是一个 dep 时自动从 CRAN 中提取的内容):
这是在 R 3.6.0 的 Singuarity 容器内构建的,并且在 CentOS 7 上使用 GCC 4.8.5。我可以使用 devtools 的“install_version”命令安装 RcppArmadillo 的 0.9.900.3.0 版本(这个版本已经完全之前使用相同的其他软件包工作得很好,这就是为什么我要安装它的原因),但是,只要我正在安装的另一个包需要 RcppArmadillo 作为依赖项,R 就会立即将其更新到版本 0.10.1.0.0,这会导致上述错误并且我的构建失败。除了告诉它根本不为某些包安装依赖项之外,我还没有找到一种方法来阻止 R 这样做,但这让人头疼,我想看看这里是否有更简单的解决方案。有谁知道如何修复这个编译错误或如何防止 R 在安装另一个需要它的包时自动更新包?
下面是输出的一部分,显示在成功安装 RcppArmadillo 版本 0.9.900.3.0 之后发生的更新:
r - 如何从自定义仓库强制安装 R 包?
目前从 CRAN 中提取时存在无法编译的依赖关系,因此维护者提供了替代方法Cannot compile RcppArmadillo。
我试图RcppArmadillo
从该路径安装,如下所示:
但是,我可以在日志中看到RcppArmadillo
仍在从CRAN
.
如何从自定义仓库强制安装?
r - 如何在 AWS EMR 版本 5.29 中安装 RcppArmadillo
我正在尝试在 AWS EMR 版本 5.29 中使用 sparkR shell 安装 RcppArmadillo。
这是我的sessionInfo()
-
这是我安装此软件包的代码-
这是我执行install.packages()
语句时遇到的失败 -