Armadillo是一个C++开发的线性代数库,可以方便的把用 Matlab 开发的算法移植到 C++。只需要头文件就可以使用,也可以选用高效的 LAPACK 和 BLAS 进行加速。安装过程如下:
1、去 Download 下载 Source Code,解压到任意目录,比如 X:\Armadillo,将 \include 目录添加到 visual studio 包含文件目录中,VS2008 是在 “工具->选项->VC++目录->包含文件” 这里设置,其它版本类似。
2、修改 X:\Armadillo\include\armadillo_bits\config.hpp 文件,取消掉下面两行的注释
#define ARMA_USE_LAPACK
#define ARMA_USE_BLAS
取消注释表示使用 LAPACK 和 BLAS 进行更高效的计算,否则使用内建的函数进行计算,这样可能会带来一定性能的下降。
3、安装 LAPACK 和 BLAS,去http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html 下载blas.lib,libf2c.lib,lapack.lib三个库,并在编译环境的额外依赖库中添加这三个库。(blasd.lib,libf2cd.lib,lapackd.lib 是 debug 版本的库,调试程序的时候可以使用)。同步骤 1 将存放 .lib 文件的路径添加到 visual studio 的库文件路径中。
4、在项目属性中的链接器中添加 blas.lib,libf2c.lib,lapack.lib
5、Okay,写个 Demo 测试一下
#include <iostream>
#include <armadillo>
int main()
{
arma::mat A = arma::randu<arma::mat>(4, 5) * 10;
arma::mat B = arma::randu<arma::mat>(4, 5) * 10;
arma::mat C = A % B;
A.print("A = \n");
B.print("B = \n");
C.print("A .* B = \n");
return 0;
}
运行结果:
A =
0.0125 5.8501 8.2284 7.1050 0.9140
5.6359 4.7987 7.4660 5.1353 3.6445
1.9330 3.5029 1.7411 3.0399 1.4731
8.0874 8.9596 8.5894 0.1498 1.6590
B =
9.8853 0.0891 6.0176 4.5079 7.8332
4.4569 3.7788 6.0717 3.5212 8.0261
1.1908 5.3166 1.6623 0.5704 5.1988
0.0467 5.7118 6.6305 6.0768 3.0195
A .* B =
0.1237 0.5213 49.5155 32.0286 7.1598
25.1186 18.1335 45.3313 18.0827 29.2511
2.3019 18.6237 2.8943 1.7340 7.6585
0.3776 51.1760 56.9518 0.9106 5.0093
请按任意键继续. . .