Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
PastixLLT< _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 PastixLLT< _MatrixType, _UpLo >:

List of all members.

Public Types

enum  { UpLo }
typedef
internal::pastix_traits
< PastixLLT< _MatrixType,
_UpLo > >::MatrixType 
_MatrixType
typedef PastixBase< PastixLLT
< MatrixType, _UpLo > > 
Base
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
PastixLLT< _MatrixType, _UpLo > & analyzePattern (MatrixType &mat)
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)
PastixLLT< _MatrixType, _UpLo > & factorize (MatrixType &mat)
void factorize (const MatrixType &matrix)
ComputationInfo info () const
 Reports whether previous computation was successful.
Array< Index, IPARM_SIZE, 1 > & iparm ()
intiparm (int idxparam)
void PastixInit ()
 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

PastixLLT< _MatrixType, _UpLo > & compute (MatrixType &mat)
void PastixDestroy ()

Protected Attributes

int m_amalgamation
int m_analysisIsOk
int m_comm
Matrix< double, DPARM_SIZE, 1 > m_dparm
int m_factorizationIsOk
bool m_hasTranspose
ComputationInfo m_info
int m_initisOk
Matrix< Index, Dynamic, 1 > m_invp
Matrix< Index, IPARM_SIZE, 1 > m_iparm
bool m_isInitialized
SparseMatrix< Scalar, ColMajorm_mat_null
int m_ordering
pastix_data_t * m_pastixdata
Matrix< Index, Dynamic, 1 > m_perm
int m_size
SparseMatrix< Scalar, ColMajorm_StrMatTrans
Matrix< Scalar, Dynamic, 1 > m_vec_null

Detailed Description

template<typename _MatrixType, int _UpLo>
class Eigen::PastixLLT< _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 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

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:
Solving linear problems

Member Typedef Documentation

typedef internal::pastix_traits<PastixLLT< _MatrixType, _UpLo > >::MatrixType _MatrixType
inherited
typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Base
typedef MatrixType::Index Index
typedef MatrixType::RealScalar RealScalar
inherited
typedef MatrixType::Scalar Scalar
typedef Matrix<Scalar,Dynamic,1> Vector
inherited

Member Enumeration Documentation

anonymous enum
Enumerator:
UpLo 

Constructor & Destructor Documentation

PastixLLT ( )
inline
PastixLLT ( const MatrixType matrix)
inline

Member Function Documentation

bool _solve ( const MatrixBase< Rhs > &  b,
MatrixBase< Dest > &  x 
) const
inherited
void _solve_sparse ( const Rhs &  b,
SparseMatrix< DestScalar, DestOptions, DestIndex > &  dest 
) const
inlineinherited
PastixLLT< _MatrixType, _UpLo > & analyzePattern ( MatrixType mat)
inherited
void analyzePattern ( const MatrixType matrix)
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

See also:
factorize()

References PastixBase< Derived >::analyzePattern(), PastixBase< PastixLLT< _MatrixType, _UpLo > >::m_iparm, and PastixBase< Derived >::PastixInit().

Index cols ( void  ) const
inlineinherited
PastixLLT< _MatrixType, _UpLo > & compute ( MatrixType mat)
protectedinherited
void compute ( const MatrixType matrix)
inline
PastixLLT< _MatrixType, _UpLo > & derived ( )
inlineinherited
const PastixLLT< _MatrixType, _UpLo > & derived ( ) const
inlineinherited
Array<RealScalar,IPARM_SIZE,1>& dparm ( )
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

See also:
analyzePattern() factorize()
double& dparm ( int  idxparam)
inlineinherited

Return a reference to a particular index parameter of the DPARM vector

See also:
dparm()
PastixLLT< _MatrixType, _UpLo > & factorize ( MatrixType mat)
inherited
void factorize ( const MatrixType matrix)
inline

Compute the LL^T supernodal numerical factorization of matrix

See also:
analyzePattern()

References PastixBase< Derived >::factorize(), and PastixBase< PastixLLT< _MatrixType, _UpLo > >::m_iparm.

ComputationInfo info ( ) const
inlineinherited

Reports whether previous computation was successful.

Returns:
Success if computation was succesful, NumericalIssue if the PaStiX reports a problem InvalidInput if the input matrix is invalid
See also:
iparm()
Array<Index,IPARM_SIZE,1>& iparm ( )
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

See also:
analyzePattern() factorize()
int& iparm ( int  idxparam)
inlineinherited

Return a reference to a particular index parameter of the IPARM vector

See also:
iparm()
void PastixDestroy ( )
inlineprotectedinherited
void PastixInit ( )
inherited

Initialize the PaStiX data structure. *A first call to this function fills iparm and dparm with the default PaStiX parameters

See also:
iparm() dparm()
Index rows ( void  ) const
inlineinherited
const internal::solve_retval<PastixBase, Rhs> solve ( const MatrixBase< Rhs > &  b) const
inlineinherited
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()
const internal::sparse_solve_retval<PastixBase, Rhs> solve ( const SparseMatrixBase< Rhs > &  b) const
inlineinherited
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()

Member Data Documentation

int m_amalgamation
mutableprotectedinherited
int m_analysisIsOk
protectedinherited
int m_comm
mutableprotectedinherited
Matrix<double,DPARM_SIZE,1> m_dparm
mutableprotectedinherited
int m_factorizationIsOk
protectedinherited
bool m_hasTranspose
mutableprotectedinherited
ComputationInfo m_info
mutableprotectedinherited
int m_initisOk
protectedinherited
Matrix<Index,Dynamic,1> m_invp
mutableprotectedinherited
Matrix<Index,IPARM_SIZE,1> m_iparm
mutableprotectedinherited
bool m_isInitialized
protectedinherited
SparseMatrix<Scalar, ColMajor> m_mat_null
mutableprotectedinherited
int m_ordering
mutableprotectedinherited
pastix_data_t* m_pastixdata
mutableprotectedinherited
Matrix<Index,Dynamic,1> m_perm
mutableprotectedinherited
int m_size
mutableprotectedinherited
SparseMatrix<Scalar, ColMajor> m_StrMatTrans
mutableprotectedinherited
Matrix<Scalar, Dynamic,1> m_vec_null
mutableprotectedinherited

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