是否有一个用于C或C ++矩阵计算的开源模板库?

时间:2012-03-06 05:31:52

标签: c++ math open-source matrix

我正在寻找一个具有线性代数标准功能的库。如决定因素,矩阵逆,乘法......但是通用。

Octave拥有完美的双重和复杂算术库,但我需要能够改变算术的实现。

3 个答案:

答案 0 :(得分:6)

目前,Eigen绝对是C ++中最好的矩阵库。

http://eigen.tuxfamily.org/index.php?title=Main_Page

我热烈地建议你。

例如,此代码创建一个随机的10x10矩阵并计算其逆:

MatrixXd A(10,10);
A.setRandom(10,10);
MatrixXd B = A.inverse();

您可以访问所有数值矩阵代数事物,例如分解,线性系统求解和其他几何算法。

它只是标题,没有外部依赖,没有安装。 它适用于大量编译器,并且很好地保存和记录。

答案 1 :(得分:2)

我不知道boost :: uBLAS可以帮到你。你可以在这里查看他们的文档:http://www.boost.org/doc/libs/1_49_0/libs/numeric/ublas/doc/index.htm,这是一个基本的线性代数库。

答案 2 :(得分:1)

我还建议 Eigen :它可以在小型固定大小的矩阵和大型动态分配矩阵上快速运行。但是,您可能还需要查看Armadillo,其功能略有不同;特别是支持3个而不是2个索引(维度)的数组。