![]() |
Prusa Slicer 2.6.0
|
A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library. More...
#include <src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h>
Inheritance diagram for Eigen::PastixLLT< _MatrixType, _UpLo >:
Collaboration diagram for Eigen::PastixLLT< _MatrixType, _UpLo >:Public Types | |
| enum | { UpLo = _UpLo } |
| typedef _MatrixType | MatrixType |
| typedef PastixBase< PastixLLT< MatrixType, _UpLo > > | Base |
| typedef Base::ColSpMatrix | ColSpMatrix |
| enum | |
| typedef internal::pastix_traits< PastixLLT< _MatrixType, _UpLo > >::MatrixType | _MatrixType |
| typedef MatrixType::Scalar | Scalar |
| typedef MatrixType::RealScalar | RealScalar |
| typedef MatrixType::StorageIndex | StorageIndex |
| typedef Matrix< Scalar, Dynamic, 1 > | Vector |
Public Member Functions | |
| PastixLLT () | |
| PastixLLT (const MatrixType &matrix) | |
| void | compute (const MatrixType &matrix) |
| void | analyzePattern (const MatrixType &matrix) |
| void | factorize (const MatrixType &matrix) |
| bool | _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) const |
| void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
| Array< StorageIndex, IPARM_SIZE, 1 > & | iparm () |
| int & | iparm (int idxparam) |
| Array< double, DPARM_SIZE, 1 > & | dparm () |
| double & | dparm (int idxparam) |
| Index | cols () const |
| Index | rows () const |
| ComputationInfo | info () const |
| Reports whether previous computation was successful. | |
| 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 Member Functions | |
| void | init () |
| void | grabMatrix (const MatrixType &matrix, ColSpMatrix &out) |
| void | analyzePattern (ColSpMatrix &mat) |
| void | factorize (ColSpMatrix &mat) |
| void | clean () |
| void | compute (ColSpMatrix &mat) |
| PastixLLT< _MatrixType, _UpLo > & | derived () |
| const PastixLLT< _MatrixType, _UpLo > & | derived () const |
Protected Attributes | |
| Array< int, IPARM_SIZE, 1 > | m_iparm |
| int | m_initisOk |
| int | m_analysisIsOk |
| int | m_factorizationIsOk |
| ComputationInfo | m_info |
| pastix_data_t * | m_pastixdata |
| int | m_comm |
| Array< double, DPARM_SIZE, 1 > | m_dparm |
| Matrix< StorageIndex, Dynamic, 1 > | m_perm |
| Matrix< StorageIndex, Dynamic, 1 > | m_invp |
| int | m_size |
| bool | m_isInitialized |
A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library.
This class is used to solve the linear systems A.X = B via a LL^T supernodal Cholesky factorization available in the PaStiX library. The matrix A should be symmetric and positive definite WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX The vectors or matrices X and B can be either dense or sparse
| MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
| UpLo | The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX |
\implsparsesolverconcept
|
inherited |
| typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Eigen::PastixLLT< _MatrixType, _UpLo >::Base |
| typedef Base::ColSpMatrix Eigen::PastixLLT< _MatrixType, _UpLo >::ColSpMatrix |
| typedef _MatrixType Eigen::PastixLLT< _MatrixType, _UpLo >::MatrixType |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| anonymous enum |
| Enumerator | |
|---|---|
| UpLo | |
|
inline |
References Eigen::PastixLLT< _MatrixType, _UpLo >::init().
Here is the call graph for this function:
|
inlineexplicit |
References Eigen::PastixLLT< _MatrixType, _UpLo >::compute(), and Eigen::PastixLLT< _MatrixType, _UpLo >::init().
Here is the call graph for this function:
|
inherited |
|
inlineinherited |
|
protectedinherited |
|
inline |
Compute the LL^T symbolic factorization of matrix using its sparsity pattern The result of this operation can be used with successive matrices having the same pattern as matrix
References Eigen::PastixBase< Derived >::analyzePattern(), and Eigen::PastixLLT< _MatrixType, _UpLo >::grabMatrix().
Here is the call graph for this function:
|
inlineprotectedinherited |
|
inlineinherited |
|
protectedinherited |
|
inline |
Compute the L factor of the LL^T supernodal factorization of matrix
References Eigen::PastixBase< Derived >::compute(), and Eigen::PastixLLT< _MatrixType, _UpLo >::grabMatrix().
Referenced by Eigen::PastixLLT< _MatrixType, _UpLo >::PastixLLT().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
inlineinherited |
Returns a reference to the double vector DPARM of PaStiX parameters The statistics related to the different phases of factorization and solve are saved here as well
|
inlineinherited |
|
protectedinherited |
|
inline |
Compute the LL^T supernodal numerical factorization of matrix
References Eigen::PastixBase< Derived >::factorize(), and Eigen::PastixLLT< _MatrixType, _UpLo >::grabMatrix().
Here is the call graph for this function:
|
inlineprotected |
References Eigen::internal::c_to_fortran_numbering(), and Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::resize().
Referenced by Eigen::PastixLLT< _MatrixType, _UpLo >::analyzePattern(), Eigen::PastixLLT< _MatrixType, _UpLo >::compute(), and Eigen::PastixLLT< _MatrixType, _UpLo >::factorize().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineinherited |
Reports whether previous computation was successful.
Success if computation was succesful, NumericalIssue if the PaStiX reports a problem InvalidInput if the input matrix is invalid
|
inlineprotected |
References Eigen::PastixLLT< _MatrixType, _UpLo >::m_iparm.
Referenced by Eigen::PastixLLT< _MatrixType, _UpLo >::PastixLLT(), and Eigen::PastixLLT< _MatrixType, _UpLo >::PastixLLT().
Here is the caller graph for this function:
|
inlineinherited |
Returns a reference to the integer vector IPARM of PaStiX parameters to modify the default parameters. The statistics related to the different phases of factorization and solve are saved here as well
|
inlineinherited |
|
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 |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotected |
Referenced by Eigen::PastixLLT< _MatrixType, _UpLo >::init().
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |