LDLT Class Template Reference

List of all members.


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

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 ResDerived>
bool solve (const MatrixBase< RhsDerived > &b, MatrixBase< ResDerived > *result) const
template<typename Derived>
bool solveInPlace (MatrixBase< Derived > &bAndX) const
DiagonalCoeffs< MatrixType > vectorD (void) const

Protected Attributes

bool m_isPositiveDefinite
MatrixType m_matrix

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,
MatrixBase< ResDerived > *  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 Thu Apr 9 10:10:01 2009 for Eigen by  doxygen 1.5.5