问题标签 [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.
rcpp - 来自 RcppArmadillo 和 R 的样本返回不同的输出
似乎,当我为每个样本设置固定种子时,sample
函数来自RcppArmadillo
并返回相同的输出。R
但是,在我的情况下,我得到了不同的结果。这是我的代码
有人知道为什么吗?
rcpp - Rcpp 中“as”的内存问题
我是 Rcpp 编程的菜鸟,这是 Rcpp 的一个简单问题。在 Rcpp 中使用 'as' 函数时,内存成本会增加一倍吗?以下面的粗略代码为例,“x”是一个非常大的矩阵。我想知道'xx'和'x'是否共享相同的内存或只是从'x'复制一个新内存?
rcpp - RcppArmadillo:对角矩阵乘法很慢
设x
是一个向量和M
一个矩阵。
在 R 中,我可以做到
在 RcppArmadillo 中,我有以下慢得多的内容。
为什么这么慢?我怎样才能加快速度?
r - 来自大稀疏矩阵的 Rcpp submat
我正在尝试将 vec 乘以一个非常大的稀疏矩阵的子集(如后面的脚本),但它在使用时无法编译sourceCpp
,它报告error: no matching function for call to ‘arma::SpMat<double>::submat(arma::uvec&, arma::uvec&)
,如果有人能帮我一个忙,将不胜感激。
r - 使用 Rcpp 不能更快地获取 all()
由于我对 Rcpp 有点陌生,所以我可能在这里遗漏了一个技巧。
让我们创建两个矩阵:
我现在想要完成以下工作:
然后我为 all() 创建了一个 Rcpp 版本,希望提高速度,定义为:
使用 all_C 检查速度,它被证明更慢:
麻烦的是,all_C() 比 all() 慢,所以我怀疑 Test2() 的缓慢速度需要更好的 all_C 调用以及在上面的示例中避免应用的方法。
我尝试使用这个答案在 Rcpp 中重写应用程序,但是使用这个 Rcpp 应用程序函数会使它变得更慢。
关于如何使用 Rcpp 提高 Test1() 速度的任何想法?
c++ - 无法构建 RcppArmadillo.package.skeleton 测试包:`R_init_ 的多个定义'
我正在尝试构建RcppArmadillo.package.skeleton
测试包。像往常一样,我在 R 中做:
到目前为止,这看起来不错:
但它不编译:
这里的关键错误是
笔记
请注意,character_only=F
参数 inpackage_native_routine_registration_skeleton
是必需的,如此处所述;否则命令失败并显示no native symbols were extracted
.
软件
Arch Linux 5.3.10、R 3.6.1、Rcpp 1.0.3
r - “inner_product”未在此范围内声明
嗨,我是 rcpp 新手并计算两个变量的内积,但收到以下代码的错误“inner_product 未在此范围内声明”:
请帮我解决这个问题。
c++ - 在 Rcpp 中动态添加行
我正在尝试在RcppArmadillo中编写一个将行动态附加到数组/矩阵的函数。它应该像rbind
在R或Pythonpandas.concat
中一样工作。(我依靠C++来提高效率。)
我的具体目标是接收一个名为的向量foo
并生成一个三列矩阵my_matrix
,其中每一行都由某些条件确定。因为需要检查每个三元组 {i,j,k} 的条件,所以它涉及一个三元组循环。这是我到目前为止所拥有的(大写字母中的文字是我在此处包含的评论):
我面临三个问题:
- 在线上
arma::vec new_row = {i,j,k};
,有人告诉我“在初始化列表中,非常量表达式不能从'int'类型缩小到'double' ” - 在线上
my_matrix = join_vert(my_matrix, new_row);
,我被告知“没有匹配函数调用'join_vert' ” - 在线上
return my_matrix;
,有人告诉我“从 'arma::vec [3]' 到 'arma::Mat'(又名 'Mat<<>>')没有可行的转换”
因为我不熟悉C++(尤其是涉及迭代修改的问题 2 和 3),所以我被卡住了。这里有人可以帮助解决问题吗?提前致谢!
r - RcppArmadillo 的 sample() 在更新 R 后不明确
我通常使用一个简短的 Rcpp 函数,该函数将一个矩阵作为输入,其中每一行包含 K 个总和为 1 的概率。然后,该函数为每一行随机采样一个 1 到 K 之间的整数,对应于所提供的概率。这是功能:
我最近更新了 R 和所有软件包。现在我不能再编译这个函数了。我不清楚原因。跑步
引发以下错误:
这基本上告诉我,我的电话RcppArmadillo::sample()
是模棱两可的。谁能告诉我为什么会这样?
r - Travis CI 使用我的使用 C++、Rcpp 和 RcppArmadillo 的 R 包构建错误
这是我的R 包的 GitHub 存储库
我已经能够在 Windows、MacOS 和 Linux 集群上从源代码安装这个包devtools::install_github("ntthung/ldsr")
我正在尝试集成 Travis CI,并在构建时收到以下错误
错误:dyn.load(文件,DLLpath = DLLpath,...)中“ldsr”的包或命名空间加载失败:无法加载共享对象“/tmp/RtmpK7z3X6/Rinst2ef05609c709/00LOCK-ldsr/00new/ldsr/libs/ ldsr.so':/tmp/RtmpK7z3X6/Rinst2ef05609c709/00LOCK-ldsr/00new/ldsr/libs/ldsr.so:未定义符号:dpotrf_
我发现它dpotrf_
属于一个名为libflame
. 所以我Rload.R
用 te 命令制作了文件Sys.setenv("PKG-LIBS"="-llibflame")
并将以下内容添加到.travis.yml
但我仍然得到同样的错误。
我的包使用 Rcpp 和 RcppArmadillo。
请帮忙!谢谢。