SparseLDLT< MatrixType, Backend > Class Template Reference

LDLT Cholesky decomposition of a sparse matrix and associated features. More...

#include <SparseLDLT.h>

List of all members.

Public Member Functions

bool _numeric (const MatrixType &matrix)
void _symbolic (const MatrixType &matrix)
void compute (const MatrixType &matrix)
int flags () const
const CholMatrixTypematrixL (void) const
RealScalar precision () const
void setPrecision (RealScalar v)
void settagss (int f)
template<typename Derived >
bool solveInPlace (MatrixBase< Derived > &b) const
 SparseLDLT (const MatrixType &matrix, int flags=0)
 SparseLDLT (int flags=0)
bool succeeded (void) const
VectorType vectorD (void) const

Protected Types

enum  { SupernodalFactorIsDirty = 0x10000, MatrixLIsDirty = 0x20000 }
typedef SparseMatrix< Scalar,
LowerTriangular|UnitDiagBit
CholMatrixType
typedef NumTraits< typename
MatrixType::Scalar >::Real 
RealScalar
typedef MatrixType::Scalar Scalar
typedef Matrix< Scalar,
MatrixType::ColsAtCompileTime, 1 > 
VectorType

Protected Attributes

VectorType m_diag
int m_flags
CholMatrixType m_matrix
VectorXi m_nonZerosPerCol
VectorXi m_parent
RealScalar m_precision
int m_status
bool m_succeeded

Detailed Description

template<typename MatrixType, int Backend = DefaultBackend>
class SparseLDLT< MatrixType, Backend >

LDLT Cholesky decomposition of a sparse matrix and associated features.

Parameters:
MatrixType the type of the matrix of which we are computing the LDLT Cholesky decomposition
See also:
class LDLT, class LDLT

Definition at line 77 of file SparseLDLT.h.


Member Typedef Documentation

template<typename MatrixType , int Backend = DefaultBackend>
typedef SparseMatrix<Scalar,LowerTriangular|UnitDiagBit> SparseLDLT< MatrixType, Backend >::CholMatrixType [protected]

Definition at line 82 of file SparseLDLT.h.

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

Definition at line 81 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
typedef MatrixType::Scalar SparseLDLT< MatrixType, Backend >::Scalar [protected]

Definition at line 80 of file SparseLDLT.h.

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

Definition at line 83 of file SparseLDLT.h.


Member Enumeration Documentation

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

Definition at line 85 of file SparseLDLT.h.


Constructor & Destructor Documentation

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

Creates a dummy LDLT factorization object with flags flags.

Definition at line 93 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
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.

Definition at line 102 of file SparseLDLT.h.


Member Function Documentation

template<typename MatrixType , int Backend>
bool SparseLDLT< MatrixType, Backend >::_numeric ( const MatrixType &  matrix  )  [inline]

Perform the actual factorization using the previously computed symbolic factorization

Definition at line 245 of file SparseLDLT.h.

template<typename MatrixType , int Backend>
void SparseLDLT< MatrixType, Backend >::_symbolic ( const MatrixType &  matrix  )  [inline]

Perform a symbolic factorization

Definition at line 188 of file SparseLDLT.h.

template<typename MatrixType , int Backend>
void SparseLDLT< MatrixType, Backend >::compute ( const MatrixType &  a  )  [inline]

Computes/re-computes the LDLT factorization

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

Definition at line 181 of file SparseLDLT.h.

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

Definition at line 142 of file SparseLDLT.h.

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

Definition at line 154 of file SparseLDLT.h.

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

Definition at line 128 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
void 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 123 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
void SparseLDLT< MatrixType, Backend >::settagss ( 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 140 of file SparseLDLT.h.

template<typename MatrixType , int Backend>
template<typename Derived >
bool SparseLDLT< MatrixType, Backend >::solveInPlace ( MatrixBase< Derived > &  b  )  const [inline]

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

Definition at line 328 of file SparseLDLT.h.

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

Definition at line 163 of file SparseLDLT.h.

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

Definition at line 157 of file SparseLDLT.h.


Member Data Documentation

template<typename MatrixType , int Backend = DefaultBackend>
VectorType SparseLDLT< MatrixType, Backend >::m_diag [protected]

Definition at line 167 of file SparseLDLT.h.

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

Definition at line 172 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
CholMatrixType SparseLDLT< MatrixType, Backend >::m_matrix [protected]

Definition at line 166 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
VectorXi SparseLDLT< MatrixType, Backend >::m_nonZerosPerCol [protected]

Definition at line 169 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
VectorXi SparseLDLT< MatrixType, Backend >::m_parent [protected]

Definition at line 168 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
RealScalar SparseLDLT< MatrixType, Backend >::m_precision [protected]

Definition at line 171 of file SparseLDLT.h.

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

Definition at line 173 of file SparseLDLT.h.

template<typename MatrixType , int Backend = DefaultBackend>
bool SparseLDLT< MatrixType, Backend >::m_succeeded [protected]

Definition at line 174 of file SparseLDLT.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:24 2013