![]() |
|
A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod. More...
#include <CholmodSupport.h>
Public Types | |
typedef MatrixType_ | MatrixType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef Matrix< Scalar, Dynamic, 1 > | VectorType |
typedef TriangularView< const MatrixType, Eigen::UnitLower > | MatrixL |
typedef TriangularView< const typename MatrixType::AdjointReturnType, Eigen::UnitUpper > | MatrixU |
![]() | |
enum | |
enum | |
typedef MatrixType_ | MatrixType |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType | CholMatrixType |
typedef MatrixType::StorageIndex | StorageIndex |
Public Member Functions | |
CholmodSimplicialLDLT () | |
CholmodSimplicialLDLT (const MatrixType &matrix) | |
~CholmodSimplicialLDLT () | |
VectorType | vectorD () const |
MatrixL | matrixL () const |
MatrixU | matrixU () const |
![]() | |
CholmodBase () | |
CholmodBase (const MatrixType &matrix) | |
~CholmodBase () | |
StorageIndex | cols () const |
StorageIndex | rows () const |
ComputationInfo | info () const |
Reports whether previous computation was successful. More... | |
CholmodSimplicialLDLT< MatrixType_, Lower > & | compute (const MatrixType &matrix) |
void | analyzePattern (const MatrixType &matrix) |
void | factorize (const MatrixType &matrix) |
cholmod_common & | cholmod () |
void | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const |
void | _solve_impl (const SparseMatrixBase< RhsDerived > &b, SparseMatrixBase< DestDerived > &dest) const |
CholmodSimplicialLDLT< MatrixType_, Lower > & | setShift (const RealScalar &offset) |
Scalar | determinant () const |
Scalar | logDeterminant () const |
void | dumpMemory (Stream &) |
![]() | |
SparseSolverBase () | |
SparseSolverBase (SparseSolverBase &&other) | |
~SparseSolverBase () | |
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 |
template<typename Rhs , typename Dest > | |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Protected Member Functions | |
void | init () |
![]() | |
CholmodSimplicialLDLT< MatrixType_, Lower > & | derived () |
const CholmodSimplicialLDLT< MatrixType_, Lower > & | derived () const |
Private Types | |
typedef CholmodBase< MatrixType_, UpLo_, CholmodSimplicialLDLT > | Base |
Private Attributes | |
cholmod_common | m_cholmod |
Additional Inherited Members | |
![]() | |
typedef SparseSolverBase< CholmodSimplicialLDLT< MatrixType_, Lower > > | Base |
![]() | |
cholmod_common | m_cholmod |
cholmod_factor * | m_cholmodFactor |
double | m_shiftOffset [2] |
ComputationInfo | m_info |
int | m_factorizationIsOk |
int | m_analysisIsOk |
bool | m_isInitialized |
![]() | |
bool | m_isInitialized |
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.
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. |
\implsparsesolverconcept
This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
|
private |
typedef TriangularView<const MatrixType, Eigen::UnitLower> Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::MatrixL |
typedef MatrixType_ Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::MatrixType |
typedef TriangularView<const typename MatrixType::AdjointReturnType, Eigen::UnitUpper> Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::MatrixU |
typedef MatrixType::RealScalar Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::RealScalar |
typedef MatrixType::Scalar Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::Scalar |
typedef MatrixType::StorageIndex Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::StorageIndex |
typedef Matrix<Scalar, Dynamic, 1> Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::VectorType |
|
inline |
References Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::init().
|
inline |
References Eigen::CholmodBase< MatrixType_, Lower, CholmodSimplicialLDLT< MatrixType_, Lower > >::compute(), and Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::init().
|
inline |
|
inlineprotected |
|
inline |
References Eigen::CholmodBase< MatrixType_, UpLo_, Derived >::m_cholmodFactor.
Referenced by Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::matrixU().
|
inline |
References Eigen::TriangularView< MatrixType_, Mode_ >::adjoint(), and Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::matrixL().
|
inline |
References D, k, and Eigen::CholmodBase< MatrixType_, UpLo_, Derived >::m_cholmodFactor.
|
mutableprivate |
Referenced by Eigen::CholmodSimplicialLDLT< MatrixType_, UpLo_ >::init().