Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
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 PardisoLDLT< MatrixType, Options >:

List of all members.

Public Types

enum  { ScalarIsComplex }
enum  { UpLo }
typedef Matrix< Index,
MatrixType::RowsAtCompileTime, 1 > 
IntColVectorType
typedef Matrix< Index,
1, MatrixType::ColsAtCompileTime > 
IntRowVectorType
typedef Traits::MatrixType MatrixType
typedef SparseMatrix< Scalar,
RowMajor, Index
SparseMatrixType
typedef Matrix< Scalar,
Dynamic, 1 > 
VectorType

Public Member Functions

template<typename BDerived , typename XDerived >
bool _solve (const MatrixBase< BDerived > &b, MatrixBase< XDerived > &x) const
template<typename Rhs , typename DestScalar , int DestOptions, typename DestIndex >
void _solve_sparse (const Rhs &b, SparseMatrix< DestScalar, DestOptions, DestIndex > &dest) const
Derived & analyzePattern (const MatrixType &matrix)
Index cols () const
Derived & compute (const MatrixType &matrix)
Derived & derived ()
const Derived & derived () const
Derived & factorize (const MatrixType &matrix)
void getMatrix (const MatrixType &matrix)
ComputationInfo info () const
 Reports whether previous computation was successful.
 PardisoLDLT ()
 PardisoLDLT (const MatrixType &matrix)
Array< Index, 64, 1 > & pardisoParameterArray ()
Index rows () const
template<typename Rhs >
const internal::solve_retval
< PardisoImpl, Rhs > 
solve (const MatrixBase< Rhs > &b) const
template<typename Rhs >
const
internal::sparse_solve_retval
< PardisoImpl, Rhs > 
solve (const SparseMatrixBase< Rhs > &b) const

Protected Types

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

Protected Member Functions

void manageErrorCode (Index error)
void pardisoInit (int type)
void pardisoRelease ()

Protected Attributes

bool m_analysisIsOk
bool m_factorizationIsOk
ComputationInfo m_info
bool m_initialized
Array< Index, 64, 1 > m_iparm
SparseMatrixType m_matrix
Index m_msglvl
IntColVectorType m_perm
void * m_pt [64]
Index m_size
Index m_type

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

Member Typedef Documentation

typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Base [protected]
typedef Base::Index Index [protected]

Reimplemented from PardisoImpl< Derived >.

typedef Matrix<Index, MatrixType::RowsAtCompileTime, 1> IntColVectorType [inherited]
typedef Matrix<Index, 1, MatrixType::ColsAtCompileTime> IntRowVectorType [inherited]
typedef Traits::MatrixType MatrixType [inherited]
typedef Base::RealScalar RealScalar [protected]

Reimplemented from PardisoImpl< Derived >.

typedef Base::Scalar Scalar [protected]

Reimplemented from PardisoImpl< Derived >.

typedef Matrix<Scalar,Dynamic,1> VectorType [inherited]

Member Enumeration Documentation

anonymous enum [inherited]
Enumerator:
ScalarIsComplex 
anonymous enum
Enumerator:
UpLo 

Constructor & Destructor Documentation

PardisoLDLT ( ) [inline]
PardisoLDLT ( const MatrixType matrix) [inline]

Member Function Documentation

bool _solve ( const MatrixBase< BDerived > &  b,
MatrixBase< XDerived > &  x 
) const [inherited]
void _solve_sparse ( const Rhs &  b,
SparseMatrix< DestScalar, DestOptions, DestIndex > &  dest 
) const [inline, inherited]
Derived & analyzePattern ( const MatrixType matrix) [inherited]

Performs a symbolic decomposition on the sparcity of matrix.

This function is particularly useful when solving for several problems having the same structure.

See also:
factorize()
Index cols ( void  ) const [inline, inherited]
Derived & compute ( const MatrixType matrix) [inherited]
Derived& derived ( ) [inline, inherited]
const Derived& derived ( ) const [inline, inherited]
Derived & factorize ( const MatrixType matrix) [inherited]

Performs a numeric decomposition of matrix

The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.

See also:
analyzePattern()
void getMatrix ( const MatrixType matrix) [inline]
ComputationInfo info ( ) const [inline, inherited]

Reports whether previous computation was successful.

Returns:
Success if computation was succesful, NumericalIssue if the matrix appears to be negative.
void manageErrorCode ( Index  error) [inline, protected, inherited]
void pardisoInit ( int  type) [inline, protected, inherited]
Array<Index,64,1>& pardisoParameterArray ( ) [inline, inherited]
Warning:
for advanced usage only.
Returns:
a reference to the parameter array controlling PARDISO. See the PARDISO manual to know how to use it.
void pardisoRelease ( ) [inline, protected, inherited]
Index rows ( void  ) const [inline, inherited]
const internal::solve_retval<PardisoImpl, Rhs> solve ( const MatrixBase< Rhs > &  b) const [inline, inherited]
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()
const internal::sparse_solve_retval<PardisoImpl, Rhs> solve ( const SparseMatrixBase< Rhs > &  b) const [inline, inherited]
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()

Member Data Documentation

bool m_analysisIsOk [protected, inherited]
bool m_factorizationIsOk [protected, inherited]
ComputationInfo m_info [protected, inherited]
bool m_initialized [protected, inherited]
Array<Index,64,1> m_iparm [mutable, protected, inherited]
SparseMatrixType m_matrix [mutable, protected, inherited]
Index m_msglvl [protected, inherited]
IntColVectorType m_perm [mutable, protected, inherited]
void* m_pt[64] [mutable, protected, inherited]
Index m_size [protected, inherited]
Index m_type [protected, inherited]

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