Eigen 库官方文档
Eigen 是一个用于线性代数的 C++ 模板库:它包含矩阵、向量、数值求解器以及相关算法。
概述
Eigen 用途广泛。
- 它支持任意大小的矩阵,从小型固定大小矩阵到任意大小的大型稠密矩阵,甚至是稀疏矩阵。
- 它支持所有的标准数字类型,包括
std::complex
,整型以及很容易拓展到用户数字类型。 - 它支持各种矩阵分解操作和几何学特征。
- 它的非官方支持模块提供了许多特殊的功能,例如像非线性优化、矩阵函数、多项式求解以及快速傅里叶变换等。
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 开始,能够优雅地回退到非矢量化代码。
- 对大小固定的矩阵做了充分优化:避免了动态内存分配,并且在允许的情况下进行循环展开。
- 对于大型矩阵,特别注意缓存友好性。
Eigen 是可靠的。
- 算法经过精心挑选以确保可靠性。可靠性权衡都有明确的记录,并且可以进行极其安全的分解。
- Eigen 使用其自己的测试套件(超过 500 个可执行文件)、标准 BLAS 测试套件和部分 LAPACK 测试套件进行了全面测试。
Eigen 是优雅的。
- 得益于表达式模板,Eigen 的 API 非常干净且富有表现力,对 C++ 程序员来说会感觉很自然。
- 基于 Eigen 实现算法感觉就像是在复制伪代码。
Eigen 有很好的编译器支持,我们在许多编译器上运行了我们的测试套件,以保证可靠性并解决任何编译器错误。Eigen 在3.4 版本之前使用是 C++03 标准,并保持合理的编译时间。3.4 之后的版本将是 C++14。
文档
- Eigen 3 文档:包括入门指南,长篇教程,快速参考以及关于从 Eigen 2 移植到 Eigen 3 的页面。
- Eigen 开发分支文档。
- Eigen 2 文档(旧):包括 Eigen2 教程。
- 常见问题。
- 演讲和会谈。
入门指南
这是一个关于如何开始使用 Eigen 的简短指南。编写它有两个目的,一是为那些想要尽快进行代码
的人提供一个关于 Eigen 库的简单介绍;除此之外,也可以将此页作为整个教程的第一部分进行阅读,完整教程将解释该库的更多细节,详见矩阵类页面。
如何“安装”Eigen?
只需要下载并提取 Eigen 源码便可使用 Eigen(下载链接见这里)。Eigen 子目录下的头文件是使用 Eigen 编译程序所需要的唯一文件。这些头文件在所有平台下都是一样的。使用 CMake 或安装任何东西都是非必须的。
Eigen 库官方文档
http://example.com/2023/08/14/eigen-library-guide/