MOAB  4.9.3pre
Eigen::PardisoLDLT< MatrixType, Options > Class Template Reference

A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library. More...

#include <PardisoSupport.h>

Inheritance diagram for Eigen::PardisoLDLT< MatrixType, Options >:
Collaboration diagram for Eigen::PardisoLDLT< MatrixType, Options >:

List of all members.

Public Types

enum  { UpLo = Options&(Upper|Lower) }
typedef Base::StorageIndex StorageIndex

Public Member Functions

 PardisoLDLT ()
 PardisoLDLT (const MatrixType &matrix)
void getMatrix (const MatrixType &matrix)

Protected Types

typedef PardisoImpl
< PardisoLDLT< MatrixType,
Options > > 
Base
typedef Base::Scalar Scalar
typedef Base::RealScalar RealScalar

Friends

class PardisoImpl< PardisoLDLT< MatrixType, Options > >

Detailed Description

template<typename MatrixType, int Options>
class Eigen::PardisoLDLT< MatrixType, Options >

A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library.

This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite. For complex matrices, A can also be symmetric only, see the Options template parameter. 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<>
Optionscan be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used. Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix. Upper|Lower can be used to tell both triangular parts can be used as input.
See also:
TutorialSparseSolverConcept, class SimplicialLDLT

Definition at line 493 of file PardisoSupport.h.


Member Typedef Documentation

template<typename MatrixType , int Options>
typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Eigen::PardisoLDLT< MatrixType, Options >::Base [protected]

Reimplemented from Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >.

Definition at line 496 of file PardisoSupport.h.

template<typename MatrixType , int Options>
typedef Base::RealScalar Eigen::PardisoLDLT< MatrixType, Options >::RealScalar [protected]

Reimplemented from Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >.

Definition at line 498 of file PardisoSupport.h.

template<typename MatrixType , int Options>
typedef Base::Scalar Eigen::PardisoLDLT< MatrixType, Options >::Scalar [protected]

Reimplemented from Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >.

Definition at line 497 of file PardisoSupport.h.

template<typename MatrixType , int Options>
typedef Base::StorageIndex Eigen::PardisoLDLT< MatrixType, Options >::StorageIndex

Reimplemented from Eigen::PardisoImpl< PardisoLDLT< MatrixType, Options > >.

Definition at line 505 of file PardisoSupport.h.


Member Enumeration Documentation

template<typename MatrixType , int Options>
anonymous enum
Enumerator:
UpLo 

Definition at line 507 of file PardisoSupport.h.

{ UpLo = Options&(Upper|Lower) };

Constructor & Destructor Documentation

template<typename MatrixType , int Options>
Eigen::PardisoLDLT< MatrixType, Options >::PardisoLDLT ( ) [inline]

Definition at line 509 of file PardisoSupport.h.

      : Base()
    {
      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
    }
template<typename MatrixType , int Options>
Eigen::PardisoLDLT< MatrixType, Options >::PardisoLDLT ( const MatrixType matrix) [inline, explicit]

Definition at line 515 of file PardisoSupport.h.

      : Base()
    {
      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
      compute(matrix);
    }

Member Function Documentation

template<typename MatrixType , int Options>
void Eigen::PardisoLDLT< MatrixType, Options >::getMatrix ( const MatrixType matrix) [inline]

Definition at line 522 of file PardisoSupport.h.

    {
      // PARDISO supports only upper, row-major matrices
      PermutationMatrix<Dynamic,Dynamic,StorageIndex> p_null;
      m_matrix.resize(matrix.rows(), matrix.cols());
      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
      m_matrix.makeCompressed();
    }

Friends And Related Function Documentation

template<typename MatrixType , int Options>
friend class PardisoImpl< PardisoLDLT< MatrixType, Options > > [friend]

Definition at line 501 of file PardisoSupport.h.


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