MOAB  4.9.3pre
Eigen::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 Eigen::PastixLLT< _MatrixType, _UpLo >:
Collaboration diagram for Eigen::PastixLLT< _MatrixType, _UpLo >:

List of all members.

Public Types

enum  { UpLo = _UpLo }
typedef _MatrixType MatrixType
typedef PastixBase< PastixLLT
< MatrixType, _UpLo > > 
Base
typedef Base::ColSpMatrix ColSpMatrix

Public Member Functions

 PastixLLT ()
 PastixLLT (const MatrixType &matrix)
void compute (const MatrixType &matrix)
void analyzePattern (const MatrixType &matrix)
void factorize (const MatrixType &matrix)

Protected Member Functions

void init ()
void grabMatrix (const MatrixType &matrix, ColSpMatrix &out)

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:
TutorialSparseSolverConcept, class SimplicialLLT

Definition at line 524 of file PaStiXSupport.h.


Member Typedef Documentation

template<typename _MatrixType , int _UpLo>
typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Eigen::PastixLLT< _MatrixType, _UpLo >::Base

Reimplemented from Eigen::PastixBase< PastixLLT< _MatrixType, _UpLo > >.

Definition at line 528 of file PaStiXSupport.h.

template<typename _MatrixType , int _UpLo>
typedef Base::ColSpMatrix Eigen::PastixLLT< _MatrixType, _UpLo >::ColSpMatrix

Reimplemented from Eigen::PastixBase< PastixLLT< _MatrixType, _UpLo > >.

Definition at line 529 of file PaStiXSupport.h.

template<typename _MatrixType , int _UpLo>
typedef _MatrixType Eigen::PastixLLT< _MatrixType, _UpLo >::MatrixType

Reimplemented from Eigen::PastixBase< PastixLLT< _MatrixType, _UpLo > >.

Definition at line 527 of file PaStiXSupport.h.


Member Enumeration Documentation

template<typename _MatrixType , int _UpLo>
anonymous enum
Enumerator:
UpLo 

Definition at line 532 of file PaStiXSupport.h.

{ UpLo = _UpLo };

Constructor & Destructor Documentation

template<typename _MatrixType , int _UpLo>
Eigen::PastixLLT< _MatrixType, _UpLo >::PastixLLT ( ) [inline]

Definition at line 533 of file PaStiXSupport.h.

                : Base()
    {
      init();
    }
template<typename _MatrixType , int _UpLo>
Eigen::PastixLLT< _MatrixType, _UpLo >::PastixLLT ( const MatrixType matrix) [inline, explicit]

Definition at line 538 of file PaStiXSupport.h.

                                                :Base()
    {
      init();
      compute(matrix);
    }

Member Function Documentation

template<typename _MatrixType , int _UpLo>
void Eigen::PastixLLT< _MatrixType, _UpLo >::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()

Definition at line 558 of file PaStiXSupport.h.

    {
      ColSpMatrix temp;
      grabMatrix(matrix, temp);
      Base::analyzePattern(temp);
    }
template<typename _MatrixType , int _UpLo>
void Eigen::PastixLLT< _MatrixType, _UpLo >::compute ( const MatrixType matrix) [inline]

Compute the L factor of the LL^T supernodal factorization of matrix

See also:
analyzePattern() factorize()

Definition at line 547 of file PaStiXSupport.h.

    {
      ColSpMatrix temp;
      grabMatrix(matrix, temp);
      Base::compute(temp);
    }
template<typename _MatrixType , int _UpLo>
void Eigen::PastixLLT< _MatrixType, _UpLo >::factorize ( const MatrixType matrix) [inline]

Compute the LL^T supernodal numerical factorization of matrix

See also:
analyzePattern()

Definition at line 567 of file PaStiXSupport.h.

    {
      ColSpMatrix temp;
      grabMatrix(matrix, temp);
      Base::factorize(temp);
    }
template<typename _MatrixType , int _UpLo>
void Eigen::PastixLLT< _MatrixType, _UpLo >::grabMatrix ( const MatrixType matrix,
ColSpMatrix out 
) [inline, protected]

Definition at line 582 of file PaStiXSupport.h.

    {
      out.resize(matrix.rows(), matrix.cols());
      // Pastix supports only lower, column-major matrices 
      out.template selfadjointView<Lower>() = matrix.template selfadjointView<UpLo>();
      internal::c_to_fortran_numbering(out);
    }
template<typename _MatrixType , int _UpLo>
void Eigen::PastixLLT< _MatrixType, _UpLo >::init ( ) [inline, protected]

Reimplemented from Eigen::PastixBase< PastixLLT< _MatrixType, _UpLo > >.

Definition at line 576 of file PaStiXSupport.h.

    {
      m_iparm(IPARM_SYM) = API_SYM_YES;
      m_iparm(IPARM_FACTORIZATION) = API_FACT_LLT;
    }

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines