 Eigen  3.4.0 (git rev e3e74001f7c4bf95f0dde572e8a08c5b2918a3ab) Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType > Class Template Reference

## Detailed Description

### template<typename Scalar, int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>> class Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >

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

Template Parameters
 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, unless EIGEN_MPL2_ONLY is defined, in which case the default is NaturalOrdering.

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. Inheritance diagram for Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >:

## Public Member Functions

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 FactorTypematrixL () const

const PermutationType & permutationP () const

EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT

const VectorRxscalingS () 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 ()

## ◆ IncompleteCholesky() [1/2]

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::IncompleteCholesky ( )
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.

IncompleteCholesky(const MatrixType&)

## ◆ IncompleteCholesky() [2/2]

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
 Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::IncompleteCholesky ( const MatrixType & matrix )
inline

Constructor computing the incomplete factorization for the given matrix matrix.

## ◆ cols()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 EIGEN_CONSTEXPR Index Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::cols ( void ) const
inline
Returns
number of columns of the factored matrix

## ◆ compute()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
 void Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::compute ( const MatrixType & mat )
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.

analyzePattern(), factorize()

## ◆ factorize()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
template<typename MatrixType >
 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.

compute(), analyzePattern()

## ◆ info()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 ComputationInfo Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::info ( ) const
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().

Returns
Success if computation was successful, NumericalIssue if the matrix appears to be negative.

## ◆ matrixL()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 const FactorType& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::matrixL ( ) const
inline
Returns
the sparse lower triangular factor L

## ◆ permutationP()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 const PermutationType& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::permutationP ( ) const
inline
Returns
the fill-in reducing permutation P (can be empty for a natural ordering)

## ◆ rows()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 EIGEN_CONSTEXPR Index Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::rows ( void ) const
inline
Returns
number of rows of the factored matrix

## ◆ scalingS()

template<typename Scalar , int _UpLo = Lower, typename _OrderingType = AMDOrdering<int>>
 const VectorRx& Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::scalingS ( ) const
inline
Returns
a vector representing the scaling factor S

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