Main MRPT website > C++ reference
MRPT logo
Public Types | Public Member Functions | Protected Types | Protected Attributes
Eigen::SparseLDLT< _MatrixType, Backend > Class Template Reference

Detailed Description

template<typename _MatrixType, typename Backend = DefaultBackend>
class Eigen::SparseLDLT< _MatrixType, Backend >

LDLT Cholesky decomposition of a sparse matrix and associated features.

Parameters:
MatrixTypethe type of the matrix of which we are computing the LDLT Cholesky decomposition
Warning:
the upper triangular part has to be specified. The rest of the matrix is not used. The input matrix must be column major.
See also:
class LDLT, class LDLT

Definition at line 80 of file SparseExtra.

Inheritance diagram for Eigen::SparseLDLT< _MatrixType, Backend >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef SparseMatrix< ScalarCholMatrixType
typedef _MatrixType MatrixType
typedef MatrixType::Index Index

Public Member Functions

 SparseLDLT (int flags=0)
 Creates a dummy LDLT factorization object with flags flags.
 SparseLDLT (const MatrixType &matrix, int flags=0)
 Creates a LDLT object and compute the respective factorization of matrix using flags flags.
void setPrecision (RealScalar v)
 Sets the relative threshold value used to prune zero coefficients during the decomposition.
RealScalar precision () const
void settags (int f)
 Sets the flags.
int flags () const
void compute (const MatrixType &matrix)
 Computes/re-computes the LDLT factorization.
void _symbolic (const MatrixType &matrix)
 Perform a symbolic factorization.
bool _numeric (const MatrixType &matrix)
 Perform the actual factorization using the previously computed symbolic factorization.
const CholMatrixTypematrixL (void) const
VectorType vectorD (void) const
template<typename Derived >
bool solveInPlace (MatrixBase< Derived > &b) const
 Computes b = L^-T D^-1 L^-1 b.
template<typename Rhs >
const internal::solve_retval
< SparseLDLT< MatrixType >
, Rhs > 
solve (const MatrixBase< Rhs > &b) const
Index cols () const
Index rows () const
const VectorTypediag () const
bool succeeded (void) const

Protected Types

enum  { SupernodalFactorIsDirty = 0x10000, MatrixLIsDirty = 0x20000 }
typedef _MatrixType::Scalar Scalar
typedef NumTraits< typename
_MatrixType::Scalar >::Real 
RealScalar
typedef Matrix< Scalar,
_MatrixType::ColsAtCompileTime, 1 > 
VectorType

Protected Attributes

CholMatrixType m_matrix
VectorType m_diag
VectorXi m_parent
VectorXi m_nonZerosPerCol
PermutationMatrix< Dynamicm_P
PermutationMatrix< Dynamicm_Pinv
RealScalar m_precision
int m_flags
int m_status
bool m_succeeded

Member Typedef Documentation

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef SparseMatrix<Scalar> Eigen::SparseLDLT< _MatrixType, Backend >::CholMatrixType

Definition at line 94 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef MatrixType::Index Eigen::SparseLDLT< _MatrixType, Backend >::Index

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 96 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef _MatrixType Eigen::SparseLDLT< _MatrixType, Backend >::MatrixType

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 95 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef NumTraits<typename _MatrixType::Scalar>::Real Eigen::SparseLDLT< _MatrixType, Backend >::RealScalar [protected]

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 84 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef _MatrixType::Scalar Eigen::SparseLDLT< _MatrixType, Backend >::Scalar [protected]

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 83 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
typedef Matrix<Scalar,_MatrixType::ColsAtCompileTime,1> Eigen::SparseLDLT< _MatrixType, Backend >::VectorType [protected]

Definition at line 86 of file SparseExtra.


Member Enumeration Documentation

template<typename _MatrixType, typename Backend = DefaultBackend>
anonymous enum [protected]
Enumerator:
SupernodalFactorIsDirty 
MatrixLIsDirty 

Definition at line 88 of file SparseExtra.


Constructor & Destructor Documentation

template<typename _MatrixType, typename Backend = DefaultBackend>
Eigen::SparseLDLT< _MatrixType, Backend >::SparseLDLT ( int  flags = 0) [inline]

Creates a dummy LDLT factorization object with flags flags.

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 100 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
Eigen::SparseLDLT< _MatrixType, Backend >::SparseLDLT ( const MatrixType matrix,
int  flags = 0 
) [inline]

Creates a LDLT object and compute the respective factorization of matrix using flags flags.

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 109 of file SparseExtra.


Member Function Documentation

template<typename _MatrixType , typename Backend >
bool Eigen::SparseLDLT< _MatrixType, Backend >::_numeric ( const MatrixType matrix)

Perform the actual factorization using the previously computed symbolic factorization.

Definition at line 306 of file SparseExtra.

template<typename _MatrixType , typename Backend >
void Eigen::SparseLDLT< _MatrixType, Backend >::_symbolic ( const MatrixType matrix)

Perform a symbolic factorization.

Definition at line 242 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
Index Eigen::SparseLDLT< _MatrixType, Backend >::cols ( void  ) const [inline]

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 177 of file SparseExtra.

template<typename _MatrixType , typename Backend >
void Eigen::SparseLDLT< _MatrixType, Backend >::compute ( const MatrixType matrix)

Computes/re-computes the LDLT factorization.

Computes / recomputes the LDLT decomposition of matrix a using the default algorithm.

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 235 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
const VectorType& Eigen::SparseLDLT< _MatrixType, Backend >::diag ( ) const [inline]

Definition at line 180 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
int Eigen::SparseLDLT< _MatrixType, Backend >::flags ( ) const [inline]
Returns:
the current flags

Definition at line 149 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
const CholMatrixType& Eigen::SparseLDLT< _MatrixType, Backend >::matrixL ( void  ) const [inline]
Returns:
the lower triangular matrix L

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 161 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
RealScalar Eigen::SparseLDLT< _MatrixType, Backend >::precision ( ) const [inline]
Returns:
the current precision.
See also:
setPrecision()

Definition at line 135 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
Index Eigen::SparseLDLT< _MatrixType, Backend >::rows ( void  ) const [inline]

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 178 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
void Eigen::SparseLDLT< _MatrixType, Backend >::setPrecision ( RealScalar  v) [inline]

Sets the relative threshold value used to prune zero coefficients during the decomposition.

Setting a value greater than zero speeds up computation, and yields to an imcomplete factorization with fewer non zero coefficients. Such approximate factors are especially useful to initialize an iterative solver.

Warning:
if precision is greater that zero, the LDLT factorization is not guaranteed to succeed even if the matrix is positive definite.

Note that the exact meaning of this parameter might depends on the actual backend. Moreover, not all backends support this feature.

See also:
precision()

Definition at line 130 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
void Eigen::SparseLDLT< _MatrixType, Backend >::settags ( int  f) [inline]

Sets the flags.

Possible values are:

  • CompleteFactorization
  • IncompleteFactorization
  • MemoryEfficient (hint to use the memory most efficient method offered by the backend)
  • SupernodalMultifrontal (implies a complete factorization if supported by the backend, overloads the MemoryEfficient flags)
  • SupernodalLeftLooking (implies a complete factorization if supported by the backend, overloads the MemoryEfficient flags)
See also:
flags()

Definition at line 147 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
template<typename Rhs >
const internal::solve_retval<SparseLDLT<MatrixType>, Rhs> Eigen::SparseLDLT< _MatrixType, Backend >::solve ( const MatrixBase< Rhs > &  b) const [inline]

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 171 of file SparseExtra.

template<typename _MatrixType , typename Backend >
template<typename Derived >
bool Eigen::SparseLDLT< _MatrixType, Backend >::solveInPlace ( MatrixBase< Derived > &  b) const

Computes b = L^-T D^-1 L^-1 b.

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 393 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
bool Eigen::SparseLDLT< _MatrixType, Backend >::succeeded ( void  ) const [inline]
Returns:
true if the factorization succeeded

Reimplemented in Eigen::SparseLDLT< _MatrixType, Cholmod >.

Definition at line 183 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
VectorType Eigen::SparseLDLT< _MatrixType, Backend >::vectorD ( void  ) const [inline]
Returns:
the coefficients of the diagonal matrix D

Definition at line 164 of file SparseExtra.


Member Data Documentation

template<typename _MatrixType, typename Backend = DefaultBackend>
VectorType Eigen::SparseLDLT< _MatrixType, Backend >::m_diag [protected]

Definition at line 187 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
int Eigen::SparseLDLT< _MatrixType, Backend >::m_flags [protected]

Definition at line 194 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
CholMatrixType Eigen::SparseLDLT< _MatrixType, Backend >::m_matrix [protected]

Definition at line 186 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
VectorXi Eigen::SparseLDLT< _MatrixType, Backend >::m_nonZerosPerCol [protected]

Definition at line 189 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
PermutationMatrix<Dynamic> Eigen::SparseLDLT< _MatrixType, Backend >::m_P [protected]

Definition at line 191 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
VectorXi Eigen::SparseLDLT< _MatrixType, Backend >::m_parent [protected]

Definition at line 188 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
PermutationMatrix<Dynamic> Eigen::SparseLDLT< _MatrixType, Backend >::m_Pinv [protected]

Definition at line 192 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
RealScalar Eigen::SparseLDLT< _MatrixType, Backend >::m_precision [protected]

Definition at line 193 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
int Eigen::SparseLDLT< _MatrixType, Backend >::m_status [mutable, protected]

Definition at line 195 of file SparseExtra.

template<typename _MatrixType, typename Backend = DefaultBackend>
bool Eigen::SparseLDLT< _MatrixType, Backend >::m_succeeded [protected]

Definition at line 196 of file SparseExtra.




Page generated by Doxygen 1.7.4 for MRPT 0.9.5 SVN:2717 at Sun Oct 16 16:08:03 PDT 2011 Hosted on:
SourceForge.net Logo