Modified Incomplete Cholesky with dual threshold.
References : C-J. Lin and J. J. Moré, Incomplete Cholesky Factorizations with Limited memory, SIAM J. Sci. Comput. 21(1), pp. 24-45, 1999
Scalar | the scalar type of the input matrices |
_UpLo | The triangular part that will be used for the computations. It can be Lower or Upper. Default is Lower. |
_OrderingType | The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<int>, unless EIGEN_MPL2_ONLY is defined, in which case the default is NaturalOrdering<int>. |
This class follows the sparse solver concept .
It performs the following incomplete factorization: \( S P A P' S \approx L L' \) where L is a lower triangular factor, S is a diagonal scaling matrix, and P is a fill-in reducing permutation as computed by the ordering method.
Shifting strategy: Let \( B = S P A P' S \) be the scaled matrix on which the factorization is carried out, and \( \beta \) be the minimum value of the diagonal. If \( \beta > 0 \) then, the factorization is directly performed on the matrix B. Otherwise, the factorization is performed on the shifted matrix \( B + (\sigma+|\beta| I \) where \( \sigma \) is the initial shift value as returned and set by setInitialShift() method. The default value is \( \sigma = 10^{-3} \). If the factorization fails, then the shift in doubled until it succeed or a maximum of ten attempts. If it still fails, as returned by the info() method, then you can either increase the initial shift, or better use another preconditioning technique.
template<typename MatrixType > | |
void | analyzePattern (const MatrixType &mat) |
Computes the fill reducing permutation vector using the sparsity pattern of mat. |
|
EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
template<typename MatrixType > | |
void | compute (const MatrixType &mat) |
template<typename MatrixType > | |
void | factorize (const MatrixType &mat) |
Performs the numerical factorization of the input matrix mat. More... |
|
IncompleteCholesky () | |
template<typename MatrixType > | |
IncompleteCholesky (const MatrixType &matrix) | |
ComputationInfo | info () const |
Reports whether previous computation was successful. More... |
|
const FactorType & | matrixL () const |
const PermutationType & | permutationP () const |
EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
const VectorRx & | scalingS () const |
void | setInitialShift (RealScalar shift) |
Set the initial shift parameter \( \sigma \). |
|
Public Member Functions inherited from Eigen::SparseSolverBase< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > > > | |
const Solve< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > >, Rhs > | solve (const MatrixBase< Rhs > &b) const |
const Solve< IncompleteCholesky< Scalar, Lower, AMDOrdering< int > >, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
SparseSolverBase () | |
| inline |
Default constructor leaving the object in a partly non-initialized stage.
You must call compute() or the pair analyzePattern()/factorize() to make it valid.
| inline |
Constructor computing the incomplete factorization for the given matrix matrix.
| inline |
| inline |
Computes or re-computes the incomplete Cholesky factorization of the input matrix mat
It is a shortcut for a sequential call to the analyzePattern() and factorize() methods.
void Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::factorize | ( | const MatrixType & | mat | ) |
Performs the numerical factorization of the input matrix mat.
The method analyzePattern() or compute() must have been called beforehand with a matrix having the same pattern.
| inline |
Reports whether previous computation was successful.
It triggers an assertion if *this
has not been initialized through the respective constructor, or a call to compute() or analyzePattern().
Success
if computation was successful, NumericalIssue
if the matrix appears to be negative.
| inline |
| inline |
| inline |
| inline |
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1IncompleteCholesky.html