compbio
Public Types | Public Member Functions | Protected Member Functions | List of all members
Eigen::PastixLDLT< _MatrixType, _UpLo > Class Template Reference

A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library. More...

#include <PaStiXSupport.h>

Inheritance diagram for Eigen::PastixLDLT< _MatrixType, _UpLo >:
Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > > Eigen::SparseSolverBase< PastixLDLT< _MatrixType, _UpLo > > Eigen::internal::noncopyable

Public Types

enum  { UpLo = _UpLo }
 
typedef _MatrixType MatrixType
 
typedef PastixBase< PastixLDLT< MatrixType, _UpLo > > Base
 
typedef Base::ColSpMatrix ColSpMatrix
 
- Public Types inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
enum  
 
typedef internal::pastix_traits< PastixLDLT< _MatrixType, _UpLo > >::MatrixType _MatrixType
 
typedef _MatrixType MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::StorageIndex StorageIndex
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 
typedef SparseMatrix< Scalar, ColMajor > ColSpMatrix
 

Public Member Functions

 PastixLDLT (const MatrixType &matrix)
 
void compute (const MatrixType &matrix)
 Compute the L and D factors of the LDL^T factorization of matrix. More...
 
void analyzePattern (const MatrixType &matrix)
 Compute the LDL^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. More...
 
void factorize (const MatrixType &matrix)
 Compute the LDL^T supernodal numerical factorization of matrix. More...
 
- Public Member Functions inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
bool _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) const
 
Array< StorageIndex, IPARM_SIZE, 1 > & iparm ()
 Returns a reference to the integer vector IPARM of PaStiX parameters to modify the default parameters. More...
 
int & iparm (int idxparam)
 Return a reference to a particular index parameter of the IPARM vector. More...
 
Array< double, DPARM_SIZE, 1 > & dparm ()
 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. More...
 
double & dparm (int idxparam)
 Return a reference to a particular index parameter of the DPARM vector. More...
 
Index cols () const
 
Index rows () const
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
- Public Member Functions inherited from Eigen::SparseSolverBase< PastixLDLT< _MatrixType, _UpLo > >
 SparseSolverBase ()
 Default constructor.
 
PastixLDLT< _MatrixType, _UpLo > & derived ()
 
const PastixLDLT< _MatrixType, _UpLo > & derived () const
 
const Solve< PastixLDLT< _MatrixType, _UpLo >, Rhs > solve (const MatrixBase< Rhs > &b) const
 
const Solve< PastixLDLT< _MatrixType, _UpLo >, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
void _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const
 

Protected Member Functions

void init ()
 
void grabMatrix (const MatrixType &matrix, ColSpMatrix &out)
 
- Protected Member Functions inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
void init ()
 Initialize the PaStiX data structure. More...
 
void analyzePattern (ColSpMatrix &mat)
 
void factorize (ColSpMatrix &mat)
 
void clean ()
 
void compute (ColSpMatrix &mat)
 

Additional Inherited Members

- Protected Types inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
typedef SparseSolverBase< PastixLDLT< _MatrixType, _UpLo > > Base
 
- Protected Attributes inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
int m_initisOk
 
int m_analysisIsOk
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
pastix_data_t * m_pastixdata
 
int m_comm
 
Array< int, IPARM_SIZE, 1 > m_iparm
 
Array< double, DPARM_SIZE, 1 > m_dparm
 
Matrix< StorageIndex, Dynamic, 1 > m_perm
 
Matrix< StorageIndex, Dynamic, 1 > m_invp
 
int m_size
 
- Protected Attributes inherited from Eigen::SparseSolverBase< PastixLDLT< _MatrixType, _UpLo > >
bool m_isInitialized
 

Detailed Description

template<typename _MatrixType, int _UpLo>
class Eigen::PastixLDLT< _MatrixType, _UpLo >

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 LDL^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

Template Parameters
MatrixTypethe type of the sparse matrix A, it must be a SparseMatrix<>
UpLoThe part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX
See also
Sparse solver concept, class SimplicialLDLT

Member Function Documentation

§ analyzePattern()

template<typename _MatrixType, int _UpLo>
void Eigen::PastixLDLT< _MatrixType, _UpLo >::analyzePattern ( const MatrixType &  matrix)
inline

Compute the LDL^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.

See also
factorize()

§ compute()

template<typename _MatrixType, int _UpLo>
void Eigen::PastixLDLT< _MatrixType, _UpLo >::compute ( const MatrixType &  matrix)
inline

Compute the L and D factors of the LDL^T factorization of matrix.

See also
analyzePattern() factorize()

§ factorize()

template<typename _MatrixType, int _UpLo>
void Eigen::PastixLDLT< _MatrixType, _UpLo >::factorize ( const MatrixType &  matrix)
inline

Compute the LDL^T supernodal numerical factorization of matrix.


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