应用介绍
Matlab 里三行写完的矩阵运算,搬到 C++ 里变成一堆循环和手动内存管理,原型验证得好好的算法,到了生产环境又得重写一遍。Armadillo 的目的就是让这一步不那么疼:它给 C++ 提供了和 Matlab 神似的语法,矩阵、向量、立方体直接当一等公民用。
它背后的表达式模板引擎会把连在一起的多个运算合并成一次遍历,省掉中间的临时矩阵,写起来像脚本,跑起来接近手写代码;分解和求解则交给 LAPACK,或者 MKL、OpenBLAS 这类高性能替代品。
Matlab 风格语法:高层次的类和函数,写法与 Matlab 很接近,研究代码转成产品代码时改动很小。
向量、矩阵与立方体:提供稠密和稀疏两种存储,整数、浮点和复数都支持。
表达式自动合并:基于模板元编程,把相邻的运算合成一步,减少临时对象和内存访问。
矩阵分解:特征值、SVD、Cholesky 等分解通过 LAPACK 或其高性能替换实现,也能求解线性方程组。
OpenMP 并行:耗时的运算可以自动启用多线程加速。
Apache 2.0 许可:开源和闭源项目都可以直接使用。
它背后的表达式模板引擎会把连在一起的多个运算合并成一次遍历,省掉中间的临时矩阵,写起来像脚本,跑起来接近手写代码;分解和求解则交给 LAPACK,或者 MKL、OpenBLAS 这类高性能替代品。
软件功能
Matlab 风格语法:高层次的类和函数,写法与 Matlab 很接近,研究代码转成产品代码时改动很小。
向量、矩阵与立方体:提供稠密和稀疏两种存储,整数、浮点和复数都支持。
表达式自动合并:基于模板元编程,把相邻的运算合成一步,减少临时对象和内存访问。
矩阵分解:特征值、SVD、Cholesky 等分解通过 LAPACK 或其高性能替换实现,也能求解线性方程组。
OpenMP 并行:耗时的运算可以自动启用多线程加速。
Apache 2.0 许可:开源和闭源项目都可以直接使用。

