A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library. More...
#include <PaStiXSupport.h>
Public Types | |
enum | { UpLo } |
typedef internal::pastix_traits < PastixLLT< _MatrixType, _UpLo > >::MatrixType | _MatrixType |
typedef PastixBase< PastixLLT < MatrixType, _UpLo > > | Base |
typedef Base::ColSpMatrix | ColSpMatrix |
typedef MatrixType::Index | Index |
typedef _MatrixType | MatrixType |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::Scalar | Scalar |
typedef Matrix< Scalar, Dynamic, 1 > | Vector |
Public Member Functions | |
bool | _solve (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) const |
void | _solve_sparse (const Rhs &b, SparseMatrix< DestScalar, DestOptions, DestIndex > &dest) const |
void | analyzePattern (const MatrixType &matrix) |
Index | cols () const |
void | compute (const MatrixType &matrix) |
PastixLLT< _MatrixType, _UpLo > & | derived () |
const PastixLLT< _MatrixType, _UpLo > & | derived () const |
Array< RealScalar, IPARM_SIZE, 1 > & | dparm () |
double & | dparm (int idxparam) |
void | factorize (const MatrixType &matrix) |
ComputationInfo | info () const |
Reports whether previous computation was successful. | |
Array< Index, IPARM_SIZE, 1 > & | iparm () |
int & | iparm (int idxparam) |
PastixLLT () | |
PastixLLT (const MatrixType &matrix) | |
Index | rows () const |
const internal::solve_retval < PastixBase, Rhs > | solve (const MatrixBase< Rhs > &b) const |
const internal::sparse_solve_retval < PastixBase, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
Protected Member Functions | |
void | analyzePattern (ColSpMatrix &mat) |
void | clean () |
void | compute (ColSpMatrix &mat) |
void | factorize (ColSpMatrix &mat) |
void | grabMatrix (const MatrixType &matrix, ColSpMatrix &out) |
void | init () |
Protected Attributes | |
int | m_analysisIsOk |
int | m_comm |
Matrix< double, DPARM_SIZE, 1 > | m_dparm |
int | m_factorizationIsOk |
ComputationInfo | m_info |
int | m_initisOk |
Matrix< Index, Dynamic, 1 > | m_invp |
Matrix< int, IPARM_SIZE, 1 > | m_iparm |
bool | m_isInitialized |
pastix_data_t * | m_pastixdata |
Matrix< Index, Dynamic, 1 > | m_perm |
int | m_size |
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 |
|
inherited |
typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Base |
typedef Base::ColSpMatrix ColSpMatrix |
|
inherited |
typedef _MatrixType MatrixType |
|
inherited |
|
inherited |
|
inline |
References PastixLLT< _MatrixType, _UpLo >::init().
|
inline |
|
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 PastixBase< Derived >::analyzePattern(), and PastixLLT< _MatrixType, _UpLo >::grabMatrix().
|
inlineprotectedinherited |
|
inlineinherited |
|
protectedinherited |
|
inline |
Compute the L factor of the LL^T supernodal factorization of matrix
References PastixBase< Derived >::compute(), and PastixLLT< _MatrixType, _UpLo >::grabMatrix().
Referenced by PastixLLT< _MatrixType, _UpLo >::PastixLLT().
|
inlineinherited |
|
inlineinherited |
|
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 |
Return a reference to a particular index parameter of the DPARM vector
|
protectedinherited |
|
inline |
Compute the LL^T supernodal numerical factorization of matrix
References PastixBase< Derived >::factorize(), and PastixLLT< _MatrixType, _UpLo >::grabMatrix().
|
inlineprotected |
|
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 |
Reimplemented from PastixBase< PastixLLT< _MatrixType, _UpLo > >.
References PastixBase< PastixLLT< _MatrixType, _UpLo > >::m_iparm.
Referenced by PastixLLT< _MatrixType, _UpLo >::PastixLLT().
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
Return a reference to a particular index parameter of the IPARM vector
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
|
mutableprotectedinherited |
|
protectedinherited |
Referenced by PastixLLT< _MatrixType, _UpLo >::init().
|
protectedinherited |
|
mutableprotectedinherited |
|
mutableprotectedinherited |