Eigen 是一个用于线性代数的 C++ 模板库:矩阵、向量、数值求解器和相关算法。
1)Eigen 用途广泛:
- 它支持各种矩阵大小:从小型固定大小矩阵到任意大的密集矩阵,甚至稀疏矩阵。
- 它支持各种标准数字类型,包括整数、浮点数、复数(std::complex),并且可以轻松扩展到自定义数字类型。
- 它支持各种矩阵分解和几何特征。
2)Eigen 运行很快:
- 使用各种指令集来优化,比如: SSE 2/3/4、AVX、AVX2、FMA、AVX512、ARM NEON(32 位和 64 位)、PowerPC AltiVec/VSX(32 位和 64 位)、ZVector(s390x/zEC13)SIMD 指令集以及自 3.4 MIPS MSA 以来执行显式矢量化,并优雅地回退到非矢量化代码 。
- 固定大小矩阵经过了全面优化