Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions | Protected Member Functions
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 >:
+ Collaboration diagram for Eigen::PastixLDLT< _MatrixType, _UpLo >:

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 > >
typedef internal::pastix_traits< PastixLDLT< _MatrixType, _UpLo > >::MatrixType _MatrixType
 
typedef _MatrixType MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Index Index
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 
typedef SparseMatrix< Scalar, ColMajor > ColSpMatrix
 

Public Member Functions

 PastixLDLT (const MatrixType &matrix)
 
void compute (const MatrixType &matrix)
 
void analyzePattern (const MatrixType &matrix)
 
void factorize (const MatrixType &matrix)
 
- Public Member Functions inherited from Eigen::PastixBase< PastixLDLT< _MatrixType, _UpLo > >
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
 
bool _solve (const MatrixBase< Rhs > &b, MatrixBase< Dest > &x) const
 
PastixLDLT< _MatrixType, _UpLo > & derived ()
 
const PastixLDLT< _MatrixType, _UpLo > & derived () const
 
Array< Index, IPARM_SIZE, 1 > & iparm ()
 
int & iparm (int idxparam)
 
Array< RealScalar, IPARM_SIZE, 1 > & dparm ()
 
double & dparm (int idxparam)
 
Index cols () const
 
Index rows () const
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 

Protected Member Functions

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

Additional Inherited Members

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

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
TutorialSparseDirectSolvers

Definition at line 25 of file PaStiXSupport.h.

Member Function Documentation

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()

Definition at line 656 of file PaStiXSupport.h.

657  {
658  ColSpMatrix temp;
659  grabMatrix(matrix, temp);
660  Base::analyzePattern(temp);
661  }
Definition: math3d.h:219
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()

Definition at line 645 of file PaStiXSupport.h.

646  {
647  ColSpMatrix temp;
648  grabMatrix(matrix, temp);
649  Base::compute(temp);
650  }
Definition: math3d.h:219
template<typename _MatrixType , int _UpLo>
void Eigen::PastixLDLT< _MatrixType, _UpLo >::factorize ( const MatrixType &  matrix)
inline

Compute the LDL^T supernodal numerical factorization of matrix

Definition at line 665 of file PaStiXSupport.h.

666  {
667  ColSpMatrix temp;
668  grabMatrix(matrix, temp);
669  Base::factorize(temp);
670  }
Definition: math3d.h:219

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