LDLT< MatrixType > Class Template Reference

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

#include <LDLT.h>

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 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

Definition at line 48 of file LDLT.h.


Member Typedef Documentation

template<typename MatrixType>
typedef NumTraits<typename MatrixType::Scalar>::Real LDLT< MatrixType >::RealScalar

Definition at line 53 of file LDLT.h.

template<typename MatrixType>
typedef MatrixType::Scalar LDLT< MatrixType >::Scalar

Definition at line 52 of file LDLT.h.

template<typename MatrixType>
typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> LDLT< MatrixType >::VectorType

Definition at line 54 of file LDLT.h.


Constructor & Destructor Documentation

template<typename MatrixType>
LDLT< MatrixType >::LDLT ( const MatrixType &  matrix  )  [inline]

Definition at line 56 of file LDLT.h.


Member Function Documentation

template<typename MatrixType >
void LDLT< MatrixType >::compute ( const MatrixType &  a  )  [inline]

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

Definition at line 94 of file LDLT.h.

template<typename MatrixType>
bool LDLT< MatrixType >::isPositiveDefinite ( void   )  const [inline]
Returns:
true if the matrix is positive definite

Definition at line 69 of file LDLT.h.

template<typename MatrixType>
Part<MatrixType, UnitLowerTriangular> LDLT< MatrixType >::matrixL ( void   )  const [inline]
Returns:
the lower triangular matrix L

Definition at line 63 of file LDLT.h.

template<typename MatrixType >
template<typename RhsDerived , typename ResultType >
bool LDLT< MatrixType >::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()

Definition at line 151 of file LDLT.h.

template<typename MatrixType >
template<typename Derived >
bool LDLT< MatrixType >::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()

Definition at line 170 of file LDLT.h.

template<typename MatrixType>
DiagonalCoeffs<MatrixType> LDLT< MatrixType >::vectorD ( void   )  const [inline]
Returns:
the coefficients of the diagonal matrix D

Definition at line 66 of file LDLT.h.


Member Data Documentation

template<typename MatrixType>
bool LDLT< MatrixType >::m_isPositiveDefinite [protected]

Definition at line 88 of file LDLT.h.

template<typename MatrixType>
MatrixType LDLT< MatrixType >::m_matrix [protected]

Definition at line 86 of file LDLT.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


vcglib
Author(s): Christian Bersch
autogenerated on Fri Jan 11 09:22:05 2013