Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ > Class Template Reference

A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod. More...

+ Inheritance diagram for Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >:

Public Types

typedef MatrixType_ MatrixType
 
- Public Types inherited from Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >
enum  
 
enum  
 
typedef MatrixType CholMatrixType
 
typedef MatrixType_ MatrixType
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::StorageIndex StorageIndex
 

Public Member Functions

 CholmodSimplicialLDLT ()
 
 CholmodSimplicialLDLT (const MatrixType &matrix)
 
 ~CholmodSimplicialLDLT ()
 
- Public Member Functions inherited from Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >
void analyzePattern (const MatrixType &matrix)
 
cholmod_common & cholmod ()
 
 CholmodBase ()
 
 CholmodBase (const MatrixType &matrix)
 
StorageIndex cols () const
 
CholmodSimplicialLDLT< MatrixType_, Lower > & compute (const MatrixType &matrix)
 
Scalar determinant () const
 
void dumpMemory (Stream &)
 
void factorize (const MatrixType &matrix)
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
Scalar logDeterminant () const
 
StorageIndex rows () const
 
CholmodSimplicialLDLT< MatrixType_, Lower > & setShift (const RealScalar &offset)
 
 ~CholmodBase ()
 
- Public Member Functions inherited from Eigen::SparseSolverBase< Derived >
Derived & derived ()
 
const Derived & derived () const
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const MatrixBase< Rhs > &b) const
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
 SparseSolverBase ()
 
 SparseSolverBase (SparseSolverBase &&other)
 
 ~SparseSolverBase ()
 

Protected Member Functions

void init ()
 
- Protected Member Functions inherited from Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >
CholmodSimplicialLDLT< MatrixType_, Lower > & derived ()
 
const CholmodSimplicialLDLT< MatrixType_, Lower > & derived () const
 

Private Types

typedef CholmodBase< MatrixType_, UpLo_, CholmodSimplicialLDLTBase
 

Private Attributes

cholmod_common m_cholmod
 

Additional Inherited Members

- Protected Types inherited from Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >
typedef SparseSolverBase< CholmodSimplicialLDLT< MatrixType_, Lower > > Base
 
- Protected Attributes inherited from Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >
int m_analysisIsOk
 
cholmod_common m_cholmod
 
cholmod_factor * m_cholmodFactor
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
bool m_isInitialized
 
double m_shiftOffset [2]
 
- Protected Attributes inherited from Eigen::SparseSolverBase< Derived >
bool m_isInitialized
 

Detailed Description

template<typename MatrixType_, int UpLo_ = Lower>
class Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >

A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod.

This class allows to solve for A.X = B sparse linear problems via a simplicial LDL^T Cholesky factorization using the Cholmod library. This simplicial variant is equivalent to Eigen's built-in SimplicialLDLT class. Therefore, it has little practical interest. The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices X and B can be either dense or sparse.

Template Parameters
MatrixType_the type of the sparse matrix A, it must be a SparseMatrix<>
UpLo_the triangular part that will be used for the computations. It can be Lower or Upper. Default is Lower.

This class follows the sparse solver concept .

This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.

Warning
Only double precision real and complex scalar types are supported by Cholmod.
See also
Sparse solver concept, class CholmodSupernodalLLT, class SimplicialLDLT

Definition at line 530 of file CholmodSupport.h.

Member Typedef Documentation

◆ Base

template<typename MatrixType_ , int UpLo_ = Lower>
typedef CholmodBase<MatrixType_, UpLo_, CholmodSimplicialLDLT> Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::Base
private

Definition at line 532 of file CholmodSupport.h.

◆ MatrixType

template<typename MatrixType_ , int UpLo_ = Lower>
typedef MatrixType_ Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::MatrixType

Definition at line 537 of file CholmodSupport.h.

Constructor & Destructor Documentation

◆ CholmodSimplicialLDLT() [1/2]

template<typename MatrixType_ , int UpLo_ = Lower>
Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::CholmodSimplicialLDLT ( )
inline

Definition at line 539 of file CholmodSupport.h.

539 : Base() { init(); }
CholmodBase< MatrixType_, UpLo_, CholmodSimplicialLDLT > Base

◆ CholmodSimplicialLDLT() [2/2]

template<typename MatrixType_ , int UpLo_ = Lower>
Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::CholmodSimplicialLDLT ( const MatrixType matrix)
inline

Definition at line 541 of file CholmodSupport.h.

541  : Base()
542  {
543  init();
544  this->compute(matrix);
545  }
CholmodSimplicialLDLT< MatrixType_, Lower > & compute(const MatrixType &matrix)

◆ ~CholmodSimplicialLDLT()

template<typename MatrixType_ , int UpLo_ = Lower>
Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::~CholmodSimplicialLDLT ( )
inline

Definition at line 547 of file CholmodSupport.h.

547 {}

Member Function Documentation

◆ init()

template<typename MatrixType_ , int UpLo_ = Lower>
void Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::init ( )
inlineprotected

Definition at line 549 of file CholmodSupport.h.

550  {
551  m_cholmod.final_asis = 1;
552  m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
553  }

Member Data Documentation

◆ m_cholmod

template<typename MatrixType_ , int UpLo_ = Lower>
cholmod_common Eigen::CholmodBase< MatrixType_, UpLo_, Derived >::m_cholmod
mutableprivate

Definition at line 448 of file CholmodSupport.h.


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