From 1b8277fc2a2675253b8bd49b468cda84a3bf099d Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Wed, 30 Jun 2010 10:37:23 +0200 Subject: update the big linear algebra table (fixes, add notes and definitions) --- doc/C02_TutorialMatrixArithmetic.dox | 2 +- doc/TopicLinearAlgebraDecompositions.dox | 44 +++++++++++++++++++++++++------- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/doc/C02_TutorialMatrixArithmetic.dox b/doc/C02_TutorialMatrixArithmetic.dox index 323cc550b..7e5615d6a 100644 --- a/doc/C02_TutorialMatrixArithmetic.dox +++ b/doc/C02_TutorialMatrixArithmetic.dox @@ -152,7 +152,7 @@ Example: \include tut_arithmetic_redux_basic.cpp Output: \include tut_arithmetic_redux_basic.out -The \em trace of a matrix, as returned by the function \c trace(), is the sum of the diagonal coefficients and can also be computed as efficiently using a.diagonal().sum(), as we see later on. +The \em trace of a matrix, as returned by the function \c trace(), is the sum of the diagonal coefficients and can also be computed as efficiently using a.diagonal().sum(), as we will see later on. There also exist variants of the \c minCoeff and \c maxCoeff functions returning the coordinates of the respective coefficient via the arguments: diff --git a/doc/TopicLinearAlgebraDecompositions.dox b/doc/TopicLinearAlgebraDecompositions.dox index adaa6cf35..0a8d89b2e 100644 --- a/doc/TopicLinearAlgebraDecompositions.dox +++ b/doc/TopicLinearAlgebraDecompositions.dox @@ -99,7 +99,7 @@ namespace Eigen { LDLT - Positive or negative semidefinite + Positive or negative semidefinite1 Very fast Good - @@ -109,6 +109,8 @@ namespace Eigen { Soon: blocking + \n Singular values and eigenvalues decompositions + SVD - @@ -136,7 +138,7 @@ namespace Eigen { SelfAdjointEigenSolver Self-adjoint - Fast, depends on condition number + Fast-average2 Good Yes Eigenvalues/vectors @@ -148,7 +150,7 @@ namespace Eigen { ComplexEigenSolver Square - Slow, depends on condition number + Slow-very slow2 Depends on condition number Yes Eigenvalues/vectors @@ -160,7 +162,7 @@ namespace Eigen { EigenSolver Square and real - Average, depends on condition number + Average-slow2 Depends on condition number Yes Eigenvalues/vectors @@ -172,7 +174,7 @@ namespace Eigen { GeneralizedSelfAdjointEigenSolver Square - Fast, depends on condition number + Fast-average2 Depends on condition number - Generalized eigenvalues/vectors @@ -181,10 +183,12 @@ namespace Eigen { - + \n Helper decompositions + RealSchur Square and real - Average, depends on condition number + Average-slow2 Depends on condition number Yes - @@ -196,7 +200,7 @@ namespace Eigen { ComplexSchur Square and real - Slow, depends on condition number + Slow-very slow2 Depends on condition number Yes - @@ -231,7 +235,7 @@ namespace Eigen { HessenbergDecomposition - - + Square Average Good - @@ -243,10 +247,32 @@ namespace Eigen { +\b Notes: + + \section TopicLinAlgTerminology Terminology -TODO explain selfadjoint, positive definite/semidefinite, blocking, unrollers, .... +
+
Selfadjoint
+
For a real matrix, selfadjoint is a synonym for symmetric. For a complex matrix, selfadjoint is a synonym for \em hermitian. + More generally, a matrix \f$ A \f$ is selfadjoint if and only if it is equal to its adjoint \f$ A^* \f$. The adjoint is also called the \em conjugate \em transpose.
+
Positive/negative definite
+
A selfadjoint matrix \f$ A \f$ is positive definite if \f$ v^* A v > 0 \f$ for any non zero vector \f$ v \f$. + In the same vein, it is negative definite if \f$ v^* A v < 0 \f$ for any non zero vector \f$ v \f$
+
Positive/negative semidefinite
+
A selfadjoint matrix \f$ A \f$ is positive semi-definite if \f$ v^* A v \ge 0 \f$ for any non zero vector \f$ v \f$. + In the same vein, it is negative semi-definite if \f$ v^* A v \le 0 \f$ for any non zero vector \f$ v \f$
+
Blocking
+
Means the algorithm can work per block, whence guarantying a good scaling of the performance for large matrices.
+
Meta-unroller
+
Means the algorithm is automatically and explicitly unrolled for very small fixed size matrices.
+
+
+
*/ -- cgit v1.2.3