Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
PardisoLU< MatrixType > Class Template Reference

A sparse direct LU factorization and solver based on the PARDISO library. More...

#include <PardisoSupport.h>

+ Inheritance diagram for PardisoLU< MatrixType >:

Public Types

enum  
typedef Traits::Index Index
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

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

Protected Types

typedef PardisoImpl< PardisoLU
< MatrixType > > 
Base
typedef Base::RealScalar RealScalar
typedef Base::Scalar Scalar

Protected Member Functions

void getMatrix (const MatrixType &matrix)
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>
class Eigen::PardisoLU< MatrixType >

A sparse direct LU factorization and solver based on the PARDISO library.

This class allows to solve for A.X = B sparse linear problems via a direct LU factorization using the Intel MKL PARDISO library. The sparse matrix A must be squared and invertible. 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<>
See Also
Solving linear problems

Member Typedef Documentation

typedef PardisoImpl< PardisoLU<MatrixType> > Base
protected
typedef Traits::Index Index
inherited
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
typedef Base::Scalar Scalar
protected
typedef Matrix<Scalar,Dynamic,1> VectorType
inherited

Member Enumeration Documentation

anonymous enum
inherited

Constructor & Destructor Documentation

PardisoLU ( )
inline
PardisoLU ( 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
inlineinherited
PardisoLU< MatrixType > & 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
inlineinherited
PardisoLU< MatrixType > & compute ( const MatrixType matrix)
inherited
PardisoLU< MatrixType > & derived ( )
inlineinherited
const PardisoLU< MatrixType > & derived ( ) const
inlineinherited
PardisoLU< MatrixType > & 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)
inlineprotected
ComputationInfo info ( ) const
inlineinherited

Reports whether previous computation was successful.

Returns
Success if computation was succesful, NumericalIssue if the matrix appears to be negative.

References eigen_assert, PardisoImpl< Derived >::m_info, and PardisoImpl< Derived >::m_initialized.

void manageErrorCode ( Index  error)
inlineprotectedinherited
void pardisoInit ( int  type)
inlineprotectedinherited
Array<Index,64,1>& pardisoParameterArray ( )
inlineinherited
Warning
for advanced usage only.
Returns
a reference to the parameter array controlling PARDISO. See the PARDISO manual to know how to use it.

References PardisoImpl< Derived >::m_iparm.

void pardisoRelease ( )
inlineprotectedinherited
Index rows ( void  ) const
inlineinherited
const internal::solve_retval<PardisoImpl, 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()

References eigen_assert, PardisoImpl< Derived >::m_initialized, and PardisoImpl< Derived >::rows().

const internal::sparse_solve_retval<PardisoImpl, 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()

References EigenBase< Derived >::derived(), eigen_assert, PardisoImpl< Derived >::m_initialized, PardisoImpl< Derived >::rows(), and SparseMatrixBase< Derived >::rows().

Member Data Documentation

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

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