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 |