Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
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 >:

List of all members.

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 [inline, inherited]
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 [inline, inherited]
PardisoLU< MatrixType > & compute ( const MatrixType matrix) [inherited]
PardisoLU< MatrixType > & derived ( ) [inline, inherited]
const PardisoLU< MatrixType > & derived ( ) const [inline, inherited]
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) [inline, protected]
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.

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

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.

References PardisoImpl< Derived >::m_iparm.

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

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

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

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


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: