Eigen 是C++语言里的一个开源模版库,支持线性代数运算,矩阵和矢量运算,数值分析及其相关的算法。Eigen库被分为一个Core模块和其他一些模块,每个模块有一些相应的头文件。
为了便于引用,Dense模块整合了一系列模块(包含了所有的函数和类);
Eigen模块整合了所有模块。
一般情况下,include<Eigen/Dense> 就够了。
Eigen库中常用的头文件如下👇(后续不断补充......)
Header File | 说明 |
---|---|
#include<Eigen/Core> | Matrix和Array类,基础的线性代数运算和数组操作 |
#include<Eigen/Geometry> | 平移、旋转、缩放、2维和3维的各种变换 |
#include<Eigen/LU> | 求逆,行列式,LU分解 |
#include<Eigen/Cholesky> | 豪斯霍尔德变换,用于线性代数运算 |
#include<Eigen/SVD> | SVD分解 |
#include<Eigen/QR> | QR分解 |
#include<Eigen/Eigenvalues> | 特征值,特征向量分解 |
#include<Eigen/Spare> | 稀疏矩阵的存储和一些基本的线性运算 |
#include<Eigen/Dense> | 集成了Core/Geometry/LU/Cholesky/SVD/QR/Eigenvalues 模块 |
#include<Eigen/Eigen> | 集成了 Dense 和 Spare(整合库) |
补充:我用的Eigen库版本是 3.2.9,版本更新的话,可能有些库不太一样,查询方法如下:
找到 /usr/include/eigen3/Eigen/src/Core/util/Macros.h 这个文件,这个文件是Eigen库中所有宏定义的文件,从下图可以看出我的Eigen版本是3.2.9。