A direct sparse LLT Cholesky factorizations. More...
#include <SimplicialCholesky.h>
A direct sparse LLT Cholesky factorizations.
This class provides a LL^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.
_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. |
typedef SimplicialCholeskyBase<SimplicialLLT> Base |
typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
typedef MatrixType::Index Index |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
typedef Traits::MatrixL MatrixL |
typedef _MatrixType MatrixType |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
typedef Traits::MatrixU MatrixU |
typedef MatrixType::RealScalar RealScalar |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
typedef MatrixType::Scalar Scalar |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
typedef internal::traits<SimplicialLLT> Traits |
typedef Matrix<Scalar,Dynamic,1> VectorType |
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
anonymous enum [inherited] |
SimplicialLLT | ( | ) | [inline] |
Default constructor
SimplicialLLT | ( | const MatrixType & | matrix | ) | [inline] |
Constructs and performs the LLT factorization of matrix
void analyzePattern | ( | const MatrixType & | a, |
bool | doLDLT | ||
) | [inline, protected, inherited] |
void analyzePattern | ( | const MatrixType & | a | ) | [inline] |
Performs a symbolic decomposition on the sparcity of matrix.
This function is particularly useful when solving for several problems having the same structure.
References SimplicialCholeskyBase< Derived >::analyzePattern().
void analyzePattern_preordered | ( | const CholMatrixType & | a, |
bool | doLDLT | ||
) | [protected, inherited] |
SimplicialLLT& compute | ( | const MatrixType & | matrix | ) | [inline] |
Computes the sparse Cholesky decomposition of matrix
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
SimplicialLLT< _MatrixType, _UpLo > & derived | ( | ) | [inline, inherited] |
const SimplicialLLT< _MatrixType, _UpLo > & derived | ( | ) | const [inline, inherited] |
Scalar determinant | ( | ) | const [inline] |
References abs2(), SparseMatrix< _Scalar, _Options, _Index >::diagonal(), and SimplicialCholeskyBase< Derived >::m_matrix.
void factorize | ( | const MatrixType & | a | ) | [inline] |
Performs a numeric decomposition of matrix
The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
Reimplemented from SimplicialCholeskyBase< SimplicialLLT< _MatrixType, _UpLo > >.
void factorize_preordered | ( | const CholMatrixType & | a | ) | [protected, inherited] |
ComputationInfo info | ( | ) | const [inline, inherited] |
Reports whether previous computation was successful.
Success
if computation was succesful, NumericalIssue
if the matrix.appears to be negative. References SimplicialCholeskyBase< Derived >::m_factorizationIsOk, and SimplicialCholeskyBase< Derived >::m_matrix.
References SimplicialCholeskyBase< Derived >::m_factorizationIsOk, and SimplicialCholeskyBase< Derived >::m_matrix.
void ordering | ( | const MatrixType & | a, |
CholMatrixType & | ap | ||
) | [protected, inherited] |
const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP | ( | ) | const [inline, inherited] |
const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv | ( | ) | const [inline, inherited] |
SimplicialLLT< _MatrixType, _UpLo > & setShift | ( | const RealScalar & | offset, |
const RealScalar & | scale = 1 |
||
) | [inline, inherited] |
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
. const internal::solve_retval<SimplicialCholeskyBase, Rhs> solve | ( | const MatrixBase< Rhs > & | b | ) | const [inline, inherited] |
const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs> solve | ( | const SparseMatrixBase< Rhs > & | b | ) | const [inline, inherited] |
bool m_analysisIsOk [protected, inherited] |
VectorType m_diag [protected, inherited] |
bool m_factorizationIsOk [protected, inherited] |
ComputationInfo m_info [mutable, protected, inherited] |
bool m_isInitialized [protected, inherited] |
CholMatrixType m_matrix [protected, inherited] |
VectorXi m_nonZerosPerCol [protected, inherited] |
PermutationMatrix<Dynamic,Dynamic,Index> m_P [protected, inherited] |
PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv [protected, inherited] |
RealScalar m_shiftOffset [protected, inherited] |
RealScalar m_shiftScale [protected, inherited] |