-
官网
http://eigen.tuxfamily.org/index.php?title=Main_Page
-
文档
http://eigen.tuxfamily.org/dox/
-
特点
- 功能强大
它支持所有矩阵大小,从小的固定大小矩阵到任意大的密集矩阵,甚至是稀疏矩阵。
它支持所有标准数字类型,包括std::complex,整数,并且很容易扩展到自定义数字类型。
它支持各种矩阵分解和几何特征。
它不支持的模块生态系统提供了许多专门功能,例如非线性优化,矩阵函数,多项式求解器,FFT等。
- 快
表达式模板允许在适当的情况下智能地删除临时对象并启用惰性评估。
对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,可平滑回退到非矢量化代码。
固定大小的矩阵已完全优化:避免了动态内存分配,并且在有意义的情况下展开了循环。
对于大型矩阵,具有缓存友好性。
- 可靠
为确保可靠性,它精心选择了算法。文档完善,结构清晰。
它已通过其自己的测试套件(超过500个可执行文件),标准的BLAS测试套件以及LAPACK测试套件的一部分进行了全面测试。
- 优雅
由于表达式模板,C++程序员感觉自然而然,该API非常干净和可表达。在它之上实现算法的感觉就像是在复制伪代码。
- 具有良好的编译器支持
它通过了很多编译器测试。Eigen也是标准的C++ 98,并保持非常合理的编译时间。