![]() |
Prusa Slicer 2.6.0
|
A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library. More...
#include <src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h>
Inheritance diagram for Eigen::PardisoLDLT< MatrixType, Options >:
Collaboration diagram for Eigen::PardisoLDLT< MatrixType, Options >:Public Types | |
| enum | { UpLo = Options&(Upper|Lower) } |
| typedef Base::StorageIndex | StorageIndex |
| enum | |
| typedef Traits::MatrixType | MatrixType |
| typedef SparseMatrix< Scalar, RowMajor, StorageIndex > | SparseMatrixType |
| typedef Matrix< Scalar, Dynamic, 1 > | VectorType |
| typedef Matrix< StorageIndex, 1, MatrixType::ColsAtCompileTime > | IntRowVectorType |
| typedef Matrix< StorageIndex, MatrixType::RowsAtCompileTime, 1 > | IntColVectorType |
| typedef Array< StorageIndex, 64, 1, DontAlign > | ParameterType |
Public Member Functions | |
| PardisoLDLT () | |
| PardisoLDLT (const MatrixType &matrix) | |
| void | getMatrix (const MatrixType &matrix) |
| Index | cols () const |
| Index | rows () const |
| ComputationInfo | info () const |
| Reports whether previous computation was successful. | |
| ParameterType & | pardisoParameterArray () |
| PardisoLDLT< MatrixType, Options > & | analyzePattern (const MatrixType &matrix) |
| PardisoLDLT< MatrixType, Options > & | factorize (const MatrixType &matrix) |
| PardisoLDLT< MatrixType, Options > & | compute (const MatrixType &matrix) |
| void | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const |
| void | _solve_impl (const MatrixBase< BDerived > &b, MatrixBase< XDerived > &x) const |
| void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) 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 |
Protected Types | |
| typedef PardisoImpl< PardisoLDLT< MatrixType, Options > > | Base |
| typedef Base::Scalar | Scalar |
| typedef Base::RealScalar | RealScalar |
| typedef internal::pardiso_traits< PardisoLDLT< MatrixType, Options > > | Traits |
Protected Member Functions | |
| void | pardisoRelease () |
| void | pardisoInit (int type) |
| void | manageErrorCode (Index error) const |
| PardisoLDLT< MatrixType, Options > & | derived () |
| const PardisoLDLT< MatrixType, Options > & | derived () const |
Protected Attributes | |
| SparseMatrixType | m_matrix |
| ComputationInfo | m_info |
| bool | m_analysisIsOk |
| bool | m_factorizationIsOk |
| StorageIndex | m_type |
| StorageIndex | m_msglvl |
| void * | m_pt [64] |
| ParameterType | m_iparm |
| IntColVectorType | m_perm |
| Index | m_size |
| bool | m_isInitialized |
Friends | |
| class | PardisoImpl< PardisoLDLT< MatrixType, Options > > |
A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library.
This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite. For complex matrices, A can also be symmetric only, see the Options template parameter. The vectors or matrices X and B can be either dense or sparse.
By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
| MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
| Options | can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used. Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix. Upper|Lower can be used to tell both triangular parts can be used as input. |
\implsparsesolverconcept
|
protected |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
|
protected |
|
inherited |
| typedef Base::StorageIndex Eigen::PardisoLDLT< MatrixType, Options >::StorageIndex |
|
protectedinherited |
|
inherited |
|
inherited |
| anonymous enum |
|
inline |
References Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::pardisoInit(), Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::ScalarIsComplex, and Eigen::Symmetric.
Here is the call graph for this function:
|
inlineexplicit |
References Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::compute(), Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::pardisoInit(), Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::ScalarIsComplex, and Eigen::Symmetric.
Here is the call graph for this function:
|
inherited |
|
inherited |
|
inlineinherited |
|
inherited |
Performs a symbolic decomposition on the sparcity of matrix.
This function is particularly useful when solving for several problems having the same structure.
|
inlineinherited |
|
inherited |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inherited |
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.
|
inline |
References Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >::m_matrix, Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::makeCompressed(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::resize(), and Eigen::SparseMatrixBase< Derived >::twistedBy().
Here is the call graph for this function:
|
inlineinherited |
Reports whether previous computation was successful.
Success if computation was succesful, NumericalIssue if the matrix appears to be negative.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
inlineprotectedinherited |
|
inlineinherited |
|
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 |
|
friend |
|
protectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
protectedinherited |