![]() |
Prusa Slicer 2.6.0
|
Modified Incomplete Cholesky with dual threshold. More...
#include <src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h>
Inheritance diagram for Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >:
Collaboration diagram for Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >:Public Types | |
| enum | { UpLo = _UpLo } |
| enum | { ColsAtCompileTime = Dynamic , MaxColsAtCompileTime = Dynamic } |
| typedef NumTraits< Scalar >::Real | RealScalar |
| typedef _OrderingType | OrderingType |
| typedef OrderingType::PermutationType | PermutationType |
| typedef PermutationType::StorageIndex | StorageIndex |
| typedef SparseMatrix< Scalar, ColMajor, StorageIndex > | FactorType |
| typedef Matrix< Scalar, Dynamic, 1 > | VectorSx |
| typedef Matrix< RealScalar, Dynamic, 1 > | VectorRx |
| typedef Matrix< StorageIndex, Dynamic, 1 > | VectorIx |
| typedef std::vector< std::list< StorageIndex > > | VectorList |
Public Member Functions | |
| IncompleteCholesky () | |
| template<typename MatrixType > | |
| IncompleteCholesky (const MatrixType &matrix) | |
| Index | rows () const |
| Index | cols () const |
| ComputationInfo | info () const |
| Reports whether previous computation was successful. | |
| void | setInitialShift (RealScalar shift) |
| Set the initial shift parameter | |
| template<typename MatrixType > | |
| void | analyzePattern (const MatrixType &mat) |
| Computes the fill reducing permutation vector using the sparsity pattern of mat. | |
| template<typename MatrixType > | |
| void | factorize (const MatrixType &mat) |
| Performs the numerical factorization of the input matrix mat. | |
| template<typename MatrixType > | |
| void | compute (const MatrixType &mat) |
| template<typename Rhs , typename Dest > | |
| void | _solve_impl (const Rhs &b, Dest &x) const |
| const FactorType & | matrixL () const |
| const VectorRx & | scalingS () const |
| const PermutationType & | permutationP () const |
| template<typename _MatrixType > | |
| void | factorize (const _MatrixType &mat) |
| Derived & | derived () |
| const Derived & | derived () const |
| template<typename Rhs > | |
| const Solve< Derived, Rhs > | solve (const MatrixBase< Rhs > &b) const |
| template<typename Rhs > | |
| const Solve< Derived, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
| template<typename Rhs , typename Dest > | |
| void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
Protected Types | |
| typedef SparseSolverBase< IncompleteCholesky< Scalar, _UpLo, _OrderingType > > | Base |
Protected Attributes | |
| FactorType | m_L |
| VectorRx | m_scale |
| RealScalar | m_initialShift |
| bool | m_analysisIsOk |
| bool | m_factorizationIsOk |
| ComputationInfo | m_info |
| PermutationType | m_perm |
| bool | m_isInitialized |
Private Member Functions | |
| void | updateList (Ref< const VectorIx > colPtr, Ref< VectorIx > rowIdx, Ref< VectorSx > vals, const Index &col, const Index &jk, VectorIx &firstElt, VectorList &listCol) |
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>. |
\implsparsesolverconcept
It performs the following incomplete factorization:
Shifting strategy: Let
|
protected |
| typedef SparseMatrix<Scalar,ColMajor,StorageIndex> Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::FactorType |
| typedef _OrderingType Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::OrderingType |
| typedef OrderingType::PermutationType Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::PermutationType |
| typedef NumTraits<Scalar>::Real Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::RealScalar |
| typedef PermutationType::StorageIndex Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::StorageIndex |
| typedef Matrix<StorageIndex,Dynamic, 1> Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::VectorIx |
| typedef std::vector<std::list<StorageIndex> > Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::VectorList |
| typedef Matrix<RealScalar,Dynamic,1> Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::VectorRx |
| typedef Matrix<Scalar,Dynamic,1> Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::VectorSx |
| anonymous enum |
| Enumerator | |
|---|---|
| UpLo | |
| anonymous enum |
|
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.
References Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::compute().
Here is the call graph for this function:
|
inline |
References Eigen::SparseMatrixBase< Derived >::adjoint(), eigen_assert, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_factorizationIsOk, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_L, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_perm, and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_scale.
Here is the call graph for this function:
|
inlineinherited |
References Eigen::SparseSolverBase< Derived >::derived(), Eigen::SparseMatrixBase< Derived >::derived(), and Eigen::internal::solve_sparse_through_dense_panels().
Here is the call graph for this function:
|
inline |
Computes the fill reducing permutation vector using the sparsity pattern of mat.
References Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_analysisIsOk, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_info, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_isInitialized, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_L, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_perm, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::resize(), and Eigen::Success.
Referenced by Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::compute().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inline |
References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::cols(), and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_L.
Here is the call graph for this function:
|
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.
References Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::analyzePattern(), and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::factorize().
Referenced by Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::IncompleteCholesky().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
Referenced by Eigen::SparseSolverBase< Derived >::_solve_impl(), and Eigen::SparseSolverBase< Derived >::solve().
Here is the caller graph for this function:
|
inlineinherited |
| void Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::factorize | ( | const _MatrixType & | mat | ) |
References Eigen::begin(), eigen_assert, eigen_internal_assert, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::innerIndexPtr(), Eigen::numext::maxi(), Eigen::numext::mini(), Eigen::NumericalIssue, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::outerIndexPtr(), Eigen::internal::QuickSplit(), Eigen::PlainObjectBase< Derived >::resize(), sqrt(), Eigen::Success, Eigen::SparseMatrixBase< Derived >::twistedBy(), and Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::valuePtr().
Here is the call graph for this function:| 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.
Referenced by Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::compute().
Here is the caller graph for this function:
|
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. References eigen_assert, Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_info, and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_isInitialized.
|
inline |
References eigen_assert, and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_L.
|
inline |
References eigen_assert, and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_perm.
|
inline |
References Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_L, and Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::rows().
Here is the call graph for this function:
|
inline |
References eigen_assert, and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_scale.
|
inline |
Set the initial shift parameter
References Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::m_initialShift.
|
inlineinherited |
References Eigen::SparseSolverBase< Derived >::derived(), eigen_assert, and Eigen::SparseSolverBase< Derived >::m_isInitialized.
Referenced by igl::embree::bone_heat(), igl::Frame_field_deformer::compute_optimal_positions(), igl::eigs(), igl::copyleft::comiso::FrameInterpolator::interpolateSymmetric(), igl::slim::solve_weighted_arap(), and igl::copyleft::comiso::NRosyField::solveNoRoundings().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
|
inlineprivate |
References col().
Here is the call graph for this function:
|
protected |
|
protected |
|
protected |
|
protected |
|
mutableprotected |
|
protected |
Referenced by Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::_solve_impl(), Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::analyzePattern(), Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::cols(), Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::matrixL(), and Eigen::IncompleteCholesky< Scalar, _UpLo, _OrderingType >::rows().
|
protected |
|
protected |