问题标签 [armadillo]
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++ - 犰狳对象上的 malloc
在犰狳矩阵实例上调用 malloc 的约定是什么。
如果我想为 100 x 100 矩阵预分配内存,这是否正确?
c++ - 将犰狳库添加到 linux 中的 g++ 编译器
我正在尝试在我没有 root 权限的 unix 集群中安装 C++ 库( armadillo )。
通过运行以下 make 命令,我设法在没有用户权限的情况下编译了 C++ 库:
但是在犰狳自述文件中它说:
其中“my_usr_dir”用于存储 C++ 头文件和库文件。确保您的 C++ 编译器配置为使用此目录中存在的子目录。
犰狳用来安装库的编译器是 gcc-4.8.1。我不确定编译器的安装位置,但是当我在 unix 集群中启动会话时它已加载。
安装犰狳后,我试图编译使用犰狳库的开源代码。这个开源代码也有一个makefile。
但是,当我转到开源代码并输入:
它调用 g++。如何确保 g++ 能够识别以前安装在 my_usr_dir 中的犰狳库?
目前,如果我转到 src 然后键入 make,我会收到以下错误:
c++ - RcppArmadillo“ReferenceInputParameter 不是模板”
我正在尝试构建一个用户包,该包在我同事的安装了 R 2.15.1 的 windows 盒子上构建良好。我的配置是:
R 2.15.3,RTools 3.0,Rcpp 0.10.4,RcppArmadillo 0.3.920.1,RStudio 0.97.551
这是我运行“R CMD INSTALL mypackage”时的第一个编译实例。indfunForecast.cpp 是包中的源文件之一。
以下错误消息是:
知道发生了什么吗???
感谢你的帮助。萨奇科
c++ - armadillo C++:从数组初始化矩阵
我是使用犰狳的新手,尽管尝试/搜索了很多,但无法获得以下信息。
我需要对两个巨大的(动态)数组(不是向量)进行关联。我决定为此使用犰狳。我了解如何使用向量初始化 arma::mat,但我可以使用数组来这样做吗?我不明白,因为我在文档中没有看到任何提及。出于内部设计原因,我试图避免使用向量。我尝试使用示例数组手动初始化每个元素(作为一个愚蠢但起点)。像下面的代码这样的东西是行不通的。
对于输入数组 v = {1, 2, 0, -1, .9} 和 c = {0, .5, 1, -2, -5}。输出将是:
这是可以理解的。使用数组初始化 arma::mat 或 arma::colvector 的任何解决方法?提前致谢!
c++ - OpenMP 在 SEIR 模型的 Rcpp 代码中生成段错误
我写了一个(可能效率低下,但无论如何..)Rcpp 代码使用内联来模拟随机SEIR 模型。串行版本可以完美地编译和工作,但是因为我需要从中模拟很多次,而且在我看来这似乎是一个令人尴尬的并行问题(只需要再次模拟其他参数值并返回一个带有结果的矩阵)我试图添加 #pragma omp parallel for
和编译-fopenmp -lgomp
但是......繁荣!即使是非常小的例子,我也会遇到段错误!我尝试添加setenv("OMP_STACKSIZE","24M",1);
超过 24M 的值,但仍然发生段错误。
我将简要解释一下代码,因为它有点长(我试图缩短它,但结果发生了变化,我无法重现它..):我有两个嵌套循环,内部循环执行给定参数集的模型和外部的改变参数。
可能发生竞态条件的唯一原因是,如果代码试图在循环内部并行执行一组指令(由于模型结构,这无法完成,在迭代t
时它取决于迭代t-1
)而不是并行化外部,但是如果我没记错的话,parallel for
如果把它放在外面的话,这就是构造函数默认做的事情......
这基本上是我试图运行的代码形式:
我的问题是:我如何告诉编译器我只想并行计算外部循环(甚至像每个线程的 n_loops/n_threads 一样静态地分配它们)而不是内部循环(实际上是不可并行化的)?
真正的代码涉及更多一些,如果您真的愿意,我将在此处展示它以方便重现,但我只是询问 OpenMP 的行为。请注意,唯一的 OpenMP 指令出现在第 行122
。
谢谢您的帮助!
注意:在你问之前,我稍微修改了 Rcpp 多项式采样函数,只是因为我更喜欢这种方式而不是使用指针的方式......没有任何其他特殊原因!:)
c++ - 如何在 C++ 中快速对角化矩阵?
我不知道选择哪个库(对于 Windows):LAPACK++、Armadillo、IT++、Eigen,或者其他什么?
我需要做的就是检查一个大(大约 10,000*10,000)矩阵是否可对角化,如果是,则得到对角线和可逆矩阵,使得 D=(P^(-1))*A*P。这必须尽快完成。我不知道要使用哪个库。
此外,我很乐意大致了解这些库的优缺点。
r - Rcpp 和 RcppArmadillo 使用 sourceCpp() 在 R 中出错
我对 C++ 还很陌生,但是在 R 上花了很多时间。我正在尝试使用 RcppArmadillo,其中 .cpp 文件是使用 sourceCpp 函数获取的。我的示例代码来自
http://lists.r-forge.r-project.org/pipermail/rcpp-devel/2013-June/006150.html
并显示如下:
我已经安装了 Rcpp 和 RcppArmadillo 包,并且已经成功地使用 Rcpp(没有 RcppArmadillo)来集成 C++ 函数。但是,对于 RcppArmadillo,我收到以下错误:
有任何想法吗?谢谢。
c++ - c++ armadillo - 计算空空间
这是我第一次发帖...
有没有办法在另一个向量的零空间中计算一个向量?我不需要基础,只需零空间中的一个向量即可。
我已经尝试过使用 solve() 方法 -
其中 A 是 mat 类型的 3x3 矩阵 -
B 是 colvec 类型的零向量 -
但程序终止抛出以下错误 -
我之前用过solve()方法,得到了完美的结果,但在这种简单的情况下似乎不起作用。这是因为方程有多个解吗?如果是这样,是否有任何解决方法,我可以在零空间中获得向量的任何其他方式?
任何帮助,将不胜感激。
编辑 :
我尝试了 svd(mat U, vec s, mat V, mat X, method = "standard") 方法,我从 V 的列中得到了 X 的空空间。我只是想知道是否有任何方法可以改进答案的准确性。
谢谢!
c++ - 如何将 lapack 和 BLAS 库链接到 C++ 代码
以上是线性代数库。我正在使用犰狳,它就像一个 c++ 包装器/框架,用于链接到 fortran 中更基本的线性代数库。
我可以通过使用带有 -I 标志的 gcc -c 选项的 #include "armadillo" 轻松编译 example.cpp。这会生成 example.o,它现在应该静态链接到 liblapack_LINUX.a 和 libBLAS_linux.a
两者的位置:
我发出以下命令:
或使用绝对路径
得到错误:
然而图书馆确实存在——
我究竟做错了什么?我对这个链接库业务以及 gcc 有点陌生。
gcc - 将犰狳 lapack blas 链接到代码时出错:未定义对“dtrsm_”的引用
我使用犰狳作为线性代数例程的包装框架,它进一步使用线性代数静态库,如 lapack 和 blas。
我已经手动编译了 blas 和 lapack 库,因此根据犰狳的 readme.txt,我应该在编译时链接到这两个库。这是我使用的 gcc 命令行 -
这会导致这些错误 -
以及更多此类错误。
谁能给我一个建议来克服这个问题?