A direct sparse Cholesky factorizations. More...
#include <SimplicialCholesky.h>
Classes | |
struct | keep_diag |
Public Types | |
enum | { UpLo = internal::traits<Derived>::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 | |
template<typename Rhs , typename Dest > | |
void | _solve (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const |
template<typename Rhs , typename DestScalar , int DestOptions, typename DestIndex > | |
void | _solve_sparse (const Rhs &b, SparseMatrix< DestScalar, DestOptions, DestIndex > &dest) const |
Index | cols () const |
Derived & | derived () |
const Derived & | derived () const |
template<typename Stream > | |
void | dumpMemory (Stream &s) |
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 |
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.
_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. |
Definition at line 76 of file SimplicialCholesky.h.
typedef SparseMatrix<Scalar,ColMajor,Index> Eigen::SimplicialCholeskyBase< Derived >::CholMatrixType |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 84 of file SimplicialCholesky.h.
typedef MatrixType::Index Eigen::SimplicialCholeskyBase< Derived >::Index |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 83 of file SimplicialCholesky.h.
typedef internal::traits<Derived>::MatrixType Eigen::SimplicialCholeskyBase< Derived >::MatrixType |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 79 of file SimplicialCholesky.h.
typedef MatrixType::RealScalar Eigen::SimplicialCholeskyBase< Derived >::RealScalar |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 82 of file SimplicialCholesky.h.
typedef MatrixType::Scalar Eigen::SimplicialCholeskyBase< Derived >::Scalar |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 81 of file SimplicialCholesky.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::SimplicialCholeskyBase< Derived >::VectorType |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 85 of file SimplicialCholesky.h.
anonymous enum |
Definition at line 80 of file SimplicialCholesky.h.
Eigen::SimplicialCholeskyBase< Derived >::SimplicialCholeskyBase | ( | ) | [inline] |
Default constructor
Definition at line 90 of file SimplicialCholesky.h.
Eigen::SimplicialCholeskyBase< Derived >::SimplicialCholeskyBase | ( | const MatrixType & | matrix | ) | [inline] |
Definition at line 94 of file SimplicialCholesky.h.
Eigen::SimplicialCholeskyBase< Derived >::~SimplicialCholeskyBase | ( | ) | [inline] |
Definition at line 100 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::_solve | ( | const MatrixBase< Rhs > & | b, |
MatrixBase< Dest > & | dest | ||
) | const [inline] |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >.
Definition at line 192 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::_solve_sparse | ( | const Rhs & | b, |
SparseMatrix< DestScalar, DestOptions, DestIndex > & | dest | ||
) | const [inline] |
Definition at line 220 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::analyzePattern | ( | const MatrixType & | a, |
bool | doLDLT | ||
) | [inline, protected] |
Definition at line 268 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::analyzePattern_preordered | ( | const CholMatrixType & | a, |
bool | doLDLT | ||
) | [protected] |
Definition at line 697 of file SimplicialCholesky.h.
Index Eigen::SimplicialCholeskyBase< Derived >::cols | ( | void | ) | const [inline] |
Definition at line 107 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::compute | ( | const MatrixType & | matrix | ) | [inline, protected] |
Computes the sparse Cholesky decomposition of matrix
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 245 of file SimplicialCholesky.h.
Derived& Eigen::SimplicialCholeskyBase< Derived >::derived | ( | ) | [inline] |
Definition at line 104 of file SimplicialCholesky.h.
const Derived& Eigen::SimplicialCholeskyBase< Derived >::derived | ( | ) | const [inline] |
Definition at line 105 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::dumpMemory | ( | Stream & | s | ) | [inline] |
Definition at line 178 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::factorize | ( | const MatrixType & | a | ) | [inline, protected] |
Reimplemented in Eigen::SimplicialCholesky< _MatrixType, _UpLo >, Eigen::SimplicialLDLT< _MatrixType, _UpLo >, and Eigen::SimplicialLLT< _MatrixType, _UpLo >.
Definition at line 256 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::factorize_preordered | ( | const CholMatrixType & | a | ) | [protected] |
Definition at line 747 of file SimplicialCholesky.h.
ComputationInfo Eigen::SimplicialCholeskyBase< Derived >::info | ( | ) | const [inline] |
Reports whether previous computation was successful.
Success
if computation was succesful, NumericalIssue
if the matrix.appears to be negative. Definition at line 115 of file SimplicialCholesky.h.
void Eigen::SimplicialCholeskyBase< Derived >::ordering | ( | const MatrixType & | a, |
CholMatrixType & | ap | ||
) | [protected] |
Definition at line 672 of file SimplicialCholesky.h.
const PermutationMatrix<Dynamic,Dynamic,Index>& Eigen::SimplicialCholeskyBase< Derived >::permutationP | ( | ) | const [inline] |
Definition at line 151 of file SimplicialCholesky.h.
const PermutationMatrix<Dynamic,Dynamic,Index>& Eigen::SimplicialCholeskyBase< Derived >::permutationPinv | ( | ) | const [inline] |
Definition at line 156 of file SimplicialCholesky.h.
Index Eigen::SimplicialCholeskyBase< Derived >::rows | ( | void | ) | const [inline] |
Definition at line 108 of file SimplicialCholesky.h.
Derived& Eigen::SimplicialCholeskyBase< 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.
*this
. Definition at line 168 of file SimplicialCholesky.h.
const internal::solve_retval<SimplicialCholeskyBase, Rhs> Eigen::SimplicialCholeskyBase< Derived >::solve | ( | const MatrixBase< Rhs > & | b | ) | const [inline] |
Definition at line 127 of file SimplicialCholesky.h.
const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs> Eigen::SimplicialCholeskyBase< Derived >::solve | ( | const SparseMatrixBase< Rhs > & | b | ) | const [inline] |
Definition at line 141 of file SimplicialCholesky.h.
bool Eigen::SimplicialCholeskyBase< Derived >::m_analysisIsOk [protected] |
Definition at line 291 of file SimplicialCholesky.h.
VectorType Eigen::SimplicialCholeskyBase< Derived >::m_diag [protected] |
Definition at line 294 of file SimplicialCholesky.h.
bool Eigen::SimplicialCholeskyBase< Derived >::m_factorizationIsOk [protected] |
Definition at line 290 of file SimplicialCholesky.h.
ComputationInfo Eigen::SimplicialCholeskyBase< Derived >::m_info [mutable, protected] |
Definition at line 288 of file SimplicialCholesky.h.
bool Eigen::SimplicialCholeskyBase< Derived >::m_isInitialized [protected] |
Definition at line 289 of file SimplicialCholesky.h.
CholMatrixType Eigen::SimplicialCholeskyBase< Derived >::m_matrix [protected] |
Definition at line 293 of file SimplicialCholesky.h.
VectorXi Eigen::SimplicialCholeskyBase< Derived >::m_nonZerosPerCol [protected] |
Definition at line 296 of file SimplicialCholesky.h.
PermutationMatrix<Dynamic,Dynamic,Index> Eigen::SimplicialCholeskyBase< Derived >::m_P [protected] |
Definition at line 297 of file SimplicialCholesky.h.
VectorXi Eigen::SimplicialCholeskyBase< Derived >::m_parent [protected] |
Definition at line 295 of file SimplicialCholesky.h.
PermutationMatrix<Dynamic,Dynamic,Index> Eigen::SimplicialCholeskyBase< Derived >::m_Pinv [protected] |
Definition at line 298 of file SimplicialCholesky.h.
RealScalar Eigen::SimplicialCholeskyBase< Derived >::m_shiftOffset [protected] |
Definition at line 300 of file SimplicialCholesky.h.
RealScalar Eigen::SimplicialCholeskyBase< Derived >::m_shiftScale [protected] |
Definition at line 301 of file SimplicialCholesky.h.