Eigen
3.2.4

This page presents a catalogue of the dense matrix decompositions offered by Eigen. For an introduction on linear solvers and decompositions, check this page .
Generic information, not Eigenspecific  Eigenspecific  

Decomposition  Requirements on the matrix  Speed  Algorithm reliability and accuracy  Rankrevealing  Allows to compute (besides linear solving)  Linear solver provided by Eigen  Maturity of Eigen's implementation  Optimizations 
PartialPivLU  Invertible  Fast  Depends on condition number      Yes  Excellent  Blocking, Implicit MT 
FullPivLU    Slow  Proven  Yes    Yes  Excellent   
HouseholderQR    Fast  Depends on condition number    Orthogonalization  Yes  Excellent  Blocking 
ColPivHouseholderQR    Fast  Good  Yes  Orthogonalization  Yes  Excellent  Soon: blocking 
FullPivHouseholderQR    Slow  Proven  Yes  Orthogonalization  Yes  Average   
LLT  Positive definite  Very fast  Depends on condition number      Yes  Excellent  Blocking 
LDLT  Positive or negative semidefinite^{1}  Very fast  Good      Yes  Excellent  Soon: blocking 
 
JacobiSVD (twosided)    Slow (but fast for small matrices)  ExcellentProven^{3}  Yes  Singular values/vectors, least squares  Yes (and does least squares)  Excellent  RSVD 
SelfAdjointEigenSolver  Selfadjoint  Fastaverage^{2}  Good  Yes  Eigenvalues/vectors    Good  Closed forms for 2x2 and 3x3 
ComplexEigenSolver  Square  Slowvery slow^{2}  Depends on condition number  Yes  Eigenvalues/vectors    Average   
EigenSolver  Square and real  Averageslow^{2}  Depends on condition number  Yes  Eigenvalues/vectors    Average   
GeneralizedSelfAdjointEigenSolver  Square  Fastaverage^{2}  Depends on condition number    Generalized eigenvalues/vectors    Good   
 
RealSchur  Square and real  Averageslow^{2}  Depends on condition number  Yes      Average   
ComplexSchur  Square  Slowvery slow^{2}  Depends on condition number  Yes      Average   
Tridiagonalization  Selfadjoint  Fast  Good        Good  Soon: blocking 
HessenbergDecomposition  Square  Average  Good        Good  Soon: blocking 
Notes:
A selfadjoint matrix is positive semidefinite if for any non zero vector . In the same vein, it is negative semidefinite if for any non zero vector