有没有一种C++库提供类似Fortran的多维数组支持,具备切片、作为过程参数传递和良好文档的功能?我已经查看了blitz ++,但它已经停用!
有没有一种C++库提供类似Fortran的多维数组支持,具备切片、作为过程参数传递和良好文档的功能?我已经查看了blitz ++,但它已经停用!
Armadillo是一个C++线性代数库(矩阵数学),旨在实现速度和易用性的良好平衡
这是一个C++模板库:
采用延迟评估方法(在编译时)将多个操作合并为一项,并减少(或消除)对临时变量的需求;这通过模板元编程自动完成
以下是网页上的一个简单示例:
#include <iostream>
#include <armadillo>
int main(int argc, char** argv)
{
arma::mat A = arma::randu<arma::mat>(4,5);
arma::mat B = arma::randu<arma::mat>(4,5);
std::cout << A*B.t() << std::endl;
return 0;
}
如果你正在使用OSX系统,那么你可以免费使用vDSP库。
如果你想部署到Windows目标平台,则需要授权Intel的相应库(MKL),或者使用免费的AMD向量数学库(ACML)。