LDLT< MatrixType > Class Template Reference

Robust Cholesky decomposition of a matrix and associated features. More...

List of all members.

Public Types

typedef NumTraits< typename
MatrixType::Scalar >::Real 
RealScalar
typedef MatrixType::Scalar Scalar
typedef Matrix< Scalar,
MatrixType::ColsAtCompileTime, 1 > 
VectorType

Public Member Functions

void compute (const MatrixType &matrix)
bool isPositiveDefinite (void) const
 LDLT (const MatrixType &matrix)
Part< MatrixType,
UnitLowerTriangular > 
matrixL (void) const
template<typename RhsDerived , typename ResultType >
bool solve (const MatrixBase< RhsDerived > &b, ResultType *result) const
template<typename Derived >
bool solveInPlace (MatrixBase< Derived > &bAndX) const
DiagonalCoeffs< MatrixType > vectorD (void) const

Protected Attributes

bool m_isPositiveDefinite
MatrixType m_matrix

Detailed Description

template<typename MatrixType>
class Eigen::LDLT< MatrixType >

Robust Cholesky decomposition of a matrix and associated features.

Parameters:
MatrixType the type of the matrix of which we are computing the LDL^T Cholesky decomposition

This class performs a Cholesky decomposition without square root of a symmetric, positive definite matrix A such that A = L D L^* = U^* D U, where L is lower triangular with a unit diagonal and D is a diagonal matrix.

Compared to a standard Cholesky decomposition, avoiding the square roots allows for faster and more stable computation.

Note that during the decomposition, only the upper triangular part of A is considered. Therefore, the strict lower part does not have to store correct values.

See also:
MatrixBase::ldlt(), class LLT

Member Function Documentation

void compute ( const MatrixType &  a  )  [inline]

Compute / recompute the LLT decomposition A = L D L^* = U^* D U of matrix

bool isPositiveDefinite ( void   )  const [inline]
Returns:
true if the matrix is positive definite
Part<MatrixType, UnitLowerTriangular> matrixL ( void   )  const [inline]
Returns:
the lower triangular matrix L
bool solve ( const MatrixBase< RhsDerived > &  b,
ResultType *  result 
) const [inline]

Computes the solution x of $ A x = b $ using the current decomposition of A. The result is stored in result

Returns:
true in case of success, false otherwise.

In other words, it computes $ b = A^{-1} b $ with $ {L^{*}}^{-1} D^{-1} L^{-1} b $ from right to left.

See also:
LDLT::solveInPlace(), MatrixBase::ldlt()
bool solveInPlace ( MatrixBase< Derived > &  bAndX  )  const [inline]

This is the in-place version of solve().

Parameters:
bAndX represents both the right-hand side matrix b and result x.

This version avoids a copy when the right hand side matrix b is not needed anymore.

See also:
LDLT::solve(), MatrixBase::ldlt()
DiagonalCoeffs<MatrixType> vectorD ( void   )  const [inline]
Returns:
the coefficients of the diagonal matrix D

The documentation for this class was generated from the following file:

Generated on Mon Aug 31 17:48:40 2009 for Eigen by  doxygen 1.6.1