Eigen  3.2.92
Eigen::PastixLU< _MatrixType, IsStrSym > Class Template Reference

Detailed Description

template<typename _MatrixType, bool IsStrSym>
class Eigen::PastixLU< _MatrixType, IsStrSym >

Interface to the PaStix solver.

Sparse direct LU solver based on PaStiX library.

This class is used to solve the linear systems A.X = B via the PaStix library. The matrix can be either real or complex, symmetric or not.

See also
TutorialSparseDirectSolvers

This class is used to solve the linear systems A.X = B with a supernodal LU factorization in the PaStiX library. The matrix A should be squared and nonsingular PaStiX requires that the matrix A has a symmetric structural pattern. This interface can symmetrize the input matrix otherwise. 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<>
IsStrSymIndicates if the input matrix has a symmetric pattern, default is false NOTE : Note that if the analysis and factorization phase are called separately, the input matrix will be symmetrized at each call, hence it is advised to symmetrize the matrix in a end-user program and set IsStrSym to true

This class follows the sparse solver concept .

See also
TutorialSparseDirectSolvers

Inherits Eigen::PastixBase< Derived >.

Public Member Functions

void analyzePattern (const MatrixType &matrix)
 
void compute (const MatrixType &matrix)
 
Array< RealScalar, IPARM_SIZE, 1 > & dparm ()
 
double & dparm (int idxparam)
 
void factorize (const MatrixType &matrix)
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
Array< StorageIndex, IPARM_SIZE, 1 > & iparm ()
 
int & iparm (int idxparam)
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const MatrixBase< Rhs > &b) const
 
template<typename Rhs >
const Solve< Derived, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 

Member Function Documentation

template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::analyzePattern ( const MatrixType &  matrix)
inline

Compute the LU symbolic factorization of matrix using its sparsity pattern. Several ordering methods can be used at this step. See the PaStiX user's manual. The result of this operation can be used with successive matrices having the same pattern as matrix

See also
factorize()
template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::compute ( const MatrixType &  matrix)
inline

Compute the LU supernodal factorization of matrix. iparm and dparm can be used to tune the PaStiX parameters. see the PaStiX user's manual

See also
analyzePattern() factorize()
template<class Derived>
Array<RealScalar,IPARM_SIZE,1>& Eigen::PastixBase< Derived >::dparm ( )
inlineinherited

Returns a reference to the double vector DPARM of PaStiX parameters The statistics related to the different phases of factorization and solve are saved here as well

See also
analyzePattern() factorize()
template<class Derived>
double& Eigen::PastixBase< Derived >::dparm ( int  idxparam)
inlineinherited

Return a reference to a particular index parameter of the DPARM vector

See also
dparm()
template<typename _MatrixType , bool IsStrSym>
void Eigen::PastixLU< _MatrixType, IsStrSym >::factorize ( const MatrixType &  matrix)
inline

Compute the LU supernodal factorization of matrix WARNING The matrix matrix should have the same structural pattern as the same used in the analysis phase.

See also
analyzePattern()
template<class Derived>
ComputationInfo Eigen::PastixBase< Derived >::info ( ) const
inlineinherited

Reports whether previous computation was successful.

Returns
Success if computation was succesful, NumericalIssue if the PaStiX reports a problem InvalidInput if the input matrix is invalid
See also
iparm()
template<class Derived>
Array<StorageIndex,IPARM_SIZE,1>& Eigen::PastixBase< Derived >::iparm ( )
inlineinherited

Returns a reference to the integer vector IPARM of PaStiX parameters to modify the default parameters. The statistics related to the different phases of factorization and solve are saved here as well

See also
analyzePattern() factorize()
template<class Derived>
int& Eigen::PastixBase< Derived >::iparm ( int  idxparam)
inlineinherited

Return a reference to a particular index parameter of the IPARM vector

See also
iparm()
template<typename Derived>
template<typename Rhs >
const Solve<Derived, Rhs> Eigen::SparseSolverBase< Derived >::solve ( const MatrixBase< Rhs > &  b) const
inlineinherited
Returns
an expression of the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()
template<typename Derived>
template<typename Rhs >
const Solve<Derived, Rhs> Eigen::SparseSolverBase< Derived >::solve ( const SparseMatrixBase< Rhs > &  b) const
inlineinherited
Returns
an expression of the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

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