namespace Eigen { /** \page TopicLinearAlgebraDecompositions Linear algebra and decompositions \section TopicLinAlgBigTable Catalogue of decompositions offered by Eigen
Generic information, not Eigen-specific Eigen-specific
Decomposition Requirements on the matrix Speed Algorithm reliability and accuracy Rank-revealing 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
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 \n Soon: meta unroller
LDLT Positive or negative semidefinite Very fast Good - - Yes Excellent Soon: blocking
SVD - Average Good Yes Singular values/vectors, least squares Yes Average -
JacobiSVD - Slow (but fast for small matrices) Proven Yes Singular values/vectors, least squares - Excellent -
SelfAdjointEigenSolver Self-adjoint Fast Good Yes Eigenvalues/vectors - Good Soon: specializations for 2x2 and 3x3
ComplexEigenSolver Square Slow TODO Jitse answer this Yes Eigenvalues/vectors - Average -
EigenSolver Square and real Average TODO Jitse answer this Yes Eigenvalues/vectors - Average -
GeneralizedSelfAdjointEigenSolver Square Fast Depends on condition number - Generalized eigenvalues/vectors - Good -
RealSchur Square and real TODO Jitse answer this TODO Jitse answer this Yes - - TODO Jitse answer this -
UpperBidiagonalization rows >= columns Fast Good - - - Good -
Tridiagonalization Self-adjoint Fast Good - - - Good Soon: blocking
HessenbergDecomposition - Average Good - - - Good Soon: blocking
\section TopicLinAlgTerminology Terminology TODO explain selfadjoint, positive definite/semidefinite, blocking, unrollers, .... */ }