问题标签 [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.

0 投票
0 回答
113 浏览

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 秒:

0 投票
1 回答
302 浏览

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.

0 投票
1 回答
160 浏览

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,我会收到数百行这样的错误消息

我完全迷路了。请帮忙!

0 投票
1 回答
80 浏览

r - 生成多个邻接矩阵的更快方法

假设我有一个P如下所示的任意概率矩阵,

对于单个邻接矩阵,它的生成方式类似于(未加权,无自放样)

但是,如果我需要生成100个邻接矩阵怎么办,所以我写下以下代码

就我而言,n >10000andT = 1000非常慢,有什么更好的办法来改进它吗?

0 投票
1 回答
63 浏览

c++ - 为什么这两个函数给出不同的结果?

我使用包定义了两个函数RcppArmadillo并将它们保存到文件cxxFuns.cpp中。f01和之间的唯一区别f02是 的位置V(0, 0)

据我了解,该功能f01应该f02给出相同的结果。然而,测试并没有显示出预期的结果。

发生了什么?

0 投票
0 回答
90 浏览

r - R中线性代数函数的Rcpp端口

以下是我试图移植到 Rcpp 的对称非负矩阵分解的目标函数:

这是我在 Rcpp 翻译中的刺探(肯定有很多错误):

什么是正确(和最快)的单核翻译?

理论背景:这个函数的迭代驱动收敛到一个H近似HH^T等于的W。有关背景,请参阅此问题(以及我的答案)。

0 投票
1 回答
679 浏览

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 之后发生的更新:

0 投票
0 回答
87 浏览

c++ - 如何计算rcpp中的时间间隔?

我想记录我的 for 循环函数的计算时间。我通过rcpp编写函数,并使用std::clock来测量时间间隔。rcpp代码如下:

我如下调整 R 代码

输出是

在此处输入图像描述

但是 R(t2-t1) 中的时间间隔与 rcpp(res[[4]]) 中计算的时间间隔不同,如何在我的 cpp 函数中得到与 R 的 Sys.time 计算相同的结果?

0 投票
1 回答
94 浏览

r - 如何从自定义仓库强制安装 R 包?

目前从 CRAN 中提取时存在无法编译的依赖关系,因此维护者提供了替代方法Cannot compile RcppArmadillo

我试图RcppArmadillo从该路径安装,如下所示:

但是,我可以在日志中看到RcppArmadillo仍在从CRAN.

如何从自定义仓库强制安装?

0 投票
1 回答
83 浏览

r - 如何在 AWS EMR 版本 5.29 中安装 RcppArmadillo

我正在尝试在 AWS EMR 版本 5.29 中使用 sparkR shell 安装 RcppArmadillo。

这是我的sessionInfo()-

这是我安装此软件包的代码-

这是我执行install.packages()语句时遇到的失败 -