Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SimplicialCholeskyBase< Derived > Class Template Reference

A direct sparse Cholesky factorizations. More...

#include <SimplicialCholesky.h>

Inherits noncopyable.

Classes

struct  keep_diag

Public Types

enum  { UpLo }
typedef SparseMatrix< Scalar,
ColMajor, Index
CholMatrixType
typedef MatrixType::Index Index
typedef internal::traits
< Derived >::MatrixType 
MatrixType
typedef MatrixType::RealScalar RealScalar
typedef MatrixType::Scalar Scalar
typedef Matrix< Scalar,
Dynamic, 1 > 
VectorType

Public Member Functions

Index cols () const
Derived & derived ()
const Derived & derived () const
ComputationInfo info () const
 Reports whether previous computation was successful.
const PermutationMatrix
< Dynamic, Dynamic, Index > & 
permutationP () const
const PermutationMatrix
< Dynamic, Dynamic, Index > & 
permutationPinv () const
Index rows () const
Derived & setShift (const RealScalar &offset, const RealScalar &scale=1)
 SimplicialCholeskyBase ()
 SimplicialCholeskyBase (const MatrixType &matrix)
template<typename Rhs >
const internal::solve_retval
< SimplicialCholeskyBase, Rhs > 
solve (const MatrixBase< Rhs > &b) const
template<typename Rhs >
const
internal::sparse_solve_retval
< SimplicialCholeskyBase, Rhs > 
solve (const SparseMatrixBase< Rhs > &b) const
 ~SimplicialCholeskyBase ()

Protected Member Functions

void analyzePattern (const MatrixType &a, bool doLDLT)
void analyzePattern_preordered (const CholMatrixType &a, bool doLDLT)
template<bool DoLDLT>
void compute (const MatrixType &matrix)
template<bool DoLDLT>
void factorize (const MatrixType &a)
template<bool DoLDLT>
void factorize_preordered (const CholMatrixType &a)
void ordering (const MatrixType &a, CholMatrixType &ap)

Protected Attributes

bool m_analysisIsOk
VectorType m_diag
bool m_factorizationIsOk
ComputationInfo m_info
bool m_isInitialized
CholMatrixType m_matrix
VectorXi m_nonZerosPerCol
PermutationMatrix< Dynamic,
Dynamic, Index
m_P
VectorXi m_parent
PermutationMatrix< Dynamic,
Dynamic, Index
m_Pinv
RealScalar m_shiftOffset
RealScalar m_shiftScale

Detailed Description

template<typename Derived>
class Eigen::SimplicialCholeskyBase< Derived >

A direct sparse Cholesky factorizations.

These classes provide LL^T and LDL^T Cholesky factorizations of sparse matrices that are selfadjoint and positive definite. The factorization allows for solving A.X = B where X and B can be either dense or sparse.

In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization such that the factorized matrix is P A P^-1.

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

Member Typedef Documentation

typedef MatrixType::Index Index
typedef internal::traits<Derived>::MatrixType MatrixType
typedef MatrixType::RealScalar RealScalar
typedef MatrixType::Scalar Scalar

Member Enumeration Documentation

anonymous enum
Enumerator:
UpLo 

Constructor & Destructor Documentation

Default constructor

SimplicialCholeskyBase ( const MatrixType matrix)
inline

Member Function Documentation

void analyzePattern ( const MatrixType a,
bool  doLDLT 
)
inlineprotected
void analyzePattern_preordered ( const CholMatrixType a,
bool  doLDLT 
)
protected
Index cols ( void  ) const
inline
void compute ( const MatrixType matrix)
inlineprotected

Computes the sparse Cholesky decomposition of matrix

Reimplemented in SimplicialCholesky< _MatrixType, _UpLo >, SimplicialLDLT< _MatrixType, _UpLo >, and SimplicialLLT< _MatrixType, _UpLo >.

Derived& derived ( )
inline
const Derived& derived ( ) const
inline
void factorize ( const MatrixType a)
inlineprotected
void factorize_preordered ( const CholMatrixType a)
protected
ComputationInfo info ( ) const
inline

Reports whether previous computation was successful.

Returns
Success if computation was succesful, NumericalIssue if the matrix.appears to be negative.
void ordering ( const MatrixType a,
CholMatrixType ap 
)
protected
const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP ( ) const
inline
Returns
the permutation P
See Also
permutationPinv()
const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv ( ) const
inline
Returns
the inverse P^-1 of the permutation P
See Also
permutationP()
Index rows ( void  ) const
inline
Derived& setShift ( const RealScalar offset,
const RealScalar scale = 1 
)
inline

Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.

During the numerical factorization, the diagonal coefficients are transformed by the following linear model:
d_ii = offset + scale * d_ii

The default is the identity transformation with offset=0, and scale=1.

Returns
a reference to *this.
const internal::solve_retval<SimplicialCholeskyBase, Rhs> solve ( const MatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See Also
compute()
const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs> solve ( const SparseMatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See Also
compute()

Member Data Documentation

bool m_analysisIsOk
protected
VectorType m_diag
protected
bool m_factorizationIsOk
protected
ComputationInfo m_info
mutableprotected
bool m_isInitialized
protected
CholMatrixType m_matrix
protected
VectorXi m_nonZerosPerCol
protected
VectorXi m_parent
protected
RealScalar m_shiftOffset
protected
RealScalar m_shiftScale
protected

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