NDDEM
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
Eigen::SuperLU< _MatrixType > Class Template Reference

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

#include <SuperLUSupport.h>

+ Inheritance diagram for Eigen::SuperLU< _MatrixType >:

Public Types

typedef SuperLUBase< _MatrixType, SuperLUBase
 
typedef _MatrixType MatrixType
 
typedef Base::Scalar Scalar
 
typedef Base::RealScalar RealScalar
 
typedef Base::StorageIndex StorageIndex
 
typedef Base::IntRowVectorType IntRowVectorType
 
typedef Base::IntColVectorType IntColVectorType
 
typedef Base::PermutationMap PermutationMap
 
typedef Base::LUMatrixType LUMatrixType
 
typedef TriangularView< LUMatrixType, Lower|UnitDiagLMatrixType
 
typedef TriangularView< LUMatrixType, UpperUMatrixType
 
- Public Types inherited from Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
enum  
 
typedef _MatrixType MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::StorageIndex StorageIndex
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 
typedef Matrix< int, 1, MatrixType::ColsAtCompileTime > IntRowVectorType
 
typedef Matrix< int, MatrixType::RowsAtCompileTime, 1 > IntColVectorType
 
typedef Map< PermutationMatrix< Dynamic, Dynamic, int > > PermutationMap
 
typedef SparseMatrix< ScalarLUMatrixType
 

Public Member Functions

 SuperLU ()
 
 SuperLU (const MatrixType &matrix)
 
 ~SuperLU ()
 
void analyzePattern (const MatrixType &matrix)
 
void factorize (const MatrixType &matrix)
 
template<typename Rhs , typename Dest >
void _solve_impl (const MatrixBase< Rhs > &b, MatrixBase< Dest > &dest) const
 
const LMatrixTypematrixL () const
 
const UMatrixTypematrixU () const
 
const IntColVectorTypepermutationP () const
 
const IntRowVectorTypepermutationQ () const
 
Scalar determinant () const
 
- Public Member Functions inherited from Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
 SuperLUBase ()
 
 ~SuperLUBase ()
 
Index rows () const
 
Index cols () const
 
superlu_options_t & options ()
 
ComputationInfo info () const
 Reports whether previous computation was successful. More...
 
void compute (const MatrixType &matrix)
 
void analyzePattern (const MatrixType &)
 
void dumpMemory (Stream &)
 
- Public Member Functions inherited from Eigen::SparseSolverBase< Derived >
 SparseSolverBase ()
 
 ~SparseSolverBase ()
 
Derived & derived ()
 
const Derived & derived () const
 
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
 
template<typename Rhs , typename Dest >
void _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const
 

Protected Member Functions

void init ()
 
- Protected Member Functions inherited from Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
void initFactorization (const MatrixType &a)
 
void init ()
 
void extractData () const
 
void clearFactors ()
 
SuperLU< _MatrixType > & derived ()
 
const SuperLU< _MatrixType > & derived () const
 

Protected Attributes

LUMatrixType m_matrix
 
superlu_options_t m_sluOptions
 
SluMatrix m_sluA
 
SluMatrix m_sluB
 
SluMatrix m_sluX
 
IntColVectorType m_p
 
IntRowVectorType m_q
 
std::vector< int > m_sluEtree
 
char m_sluEqued
 
Matrix< RealScalar, Dynamic, 1 > m_sluRscale
 
Matrix< RealScalar, Dynamic, 1 > m_sluCscale
 
SuperMatrix m_sluL
 
SuperMatrix m_sluU
 
SuperLUStat_t m_sluStat
 
Matrix< RealScalar, Dynamic, 1 > m_sluFerr
 
Matrix< RealScalar, Dynamic, 1 > m_sluBerr
 
LUMatrixType m_l
 
LUMatrixType m_u
 
int m_analysisIsOk
 
int m_factorizationIsOk
 
bool m_extractedDataAreDirty
 
bool m_isInitialized
 
ComputationInfo m_info
 
- Protected Attributes inherited from Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
LUMatrixType m_l
 
LUMatrixType m_u
 
IntColVectorType m_p
 
IntRowVectorType m_q
 
LUMatrixType m_matrix
 
SluMatrix m_sluA
 
SuperMatrix m_sluL
 
SuperMatrix m_sluU
 
SluMatrix m_sluB
 
SluMatrix m_sluX
 
SuperLUStat_t m_sluStat
 
superlu_options_t m_sluOptions
 
std::vector< int > m_sluEtree
 
Matrix< RealScalar, Dynamic, 1 > m_sluRscale
 
Matrix< RealScalar, Dynamic, 1 > m_sluCscale
 
Matrix< RealScalar, Dynamic, 1 > m_sluFerr
 
Matrix< RealScalar, Dynamic, 1 > m_sluBerr
 
char m_sluEqued
 
ComputationInfo m_info
 
int m_factorizationIsOk
 
int m_analysisIsOk
 
bool m_extractedDataAreDirty
 
bool m_isInitialized
 
- Protected Attributes inherited from Eigen::SparseSolverBase< Derived >
bool m_isInitialized
 

Private Member Functions

 SuperLU (SuperLU &)
 

Additional Inherited Members

- Protected Types inherited from Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
typedef SparseSolverBase< SuperLU< _MatrixType > > Base
 

Detailed Description

template<typename _MatrixType>
class Eigen::SuperLU< _MatrixType >

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

This class allows to solve for A.X = B sparse linear problems via a direct LU factorization using the SuperLU 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<>
Warning
This class is only for the 4.x versions of SuperLU. The 3.x and 5.x versions are not supported.

\implsparsesolverconcept

See also
TutorialSparseSolverConcept, class SparseLU

Member Typedef Documentation

◆ Base

template<typename _MatrixType >
typedef SuperLUBase<_MatrixType,SuperLU> Eigen::SuperLU< _MatrixType >::Base

◆ IntColVectorType

template<typename _MatrixType >
typedef Base::IntColVectorType Eigen::SuperLU< _MatrixType >::IntColVectorType

◆ IntRowVectorType

template<typename _MatrixType >
typedef Base::IntRowVectorType Eigen::SuperLU< _MatrixType >::IntRowVectorType

◆ LMatrixType

template<typename _MatrixType >
typedef TriangularView<LUMatrixType, Lower|UnitDiag> Eigen::SuperLU< _MatrixType >::LMatrixType

◆ LUMatrixType

template<typename _MatrixType >
typedef Base::LUMatrixType Eigen::SuperLU< _MatrixType >::LUMatrixType

◆ MatrixType

template<typename _MatrixType >
typedef _MatrixType Eigen::SuperLU< _MatrixType >::MatrixType

◆ PermutationMap

template<typename _MatrixType >
typedef Base::PermutationMap Eigen::SuperLU< _MatrixType >::PermutationMap

◆ RealScalar

template<typename _MatrixType >
typedef Base::RealScalar Eigen::SuperLU< _MatrixType >::RealScalar

◆ Scalar

template<typename _MatrixType >
typedef Base::Scalar Eigen::SuperLU< _MatrixType >::Scalar

◆ StorageIndex

template<typename _MatrixType >
typedef Base::StorageIndex Eigen::SuperLU< _MatrixType >::StorageIndex

◆ UMatrixType

template<typename _MatrixType >
typedef TriangularView<LUMatrixType, Upper> Eigen::SuperLU< _MatrixType >::UMatrixType

Constructor & Destructor Documentation

◆ SuperLU() [1/3]

template<typename _MatrixType >
Eigen::SuperLU< _MatrixType >::SuperLU ( )
inline

◆ SuperLU() [2/3]

template<typename _MatrixType >
Eigen::SuperLU< _MatrixType >::SuperLU ( const MatrixType matrix)
inlineexplicit

◆ ~SuperLU()

template<typename _MatrixType >
Eigen::SuperLU< _MatrixType >::~SuperLU ( )
inline

◆ SuperLU() [3/3]

template<typename _MatrixType >
Eigen::SuperLU< _MatrixType >::SuperLU ( SuperLU< _MatrixType > &  )
inlineprivate

Member Function Documentation

◆ _solve_impl()

template<typename MatrixType >
template<typename Rhs , typename Dest >
void Eigen::SuperLU< MatrixType >::_solve_impl ( const MatrixBase< Rhs > &  b,
MatrixBase< Dest > &  dest 
) const

◆ analyzePattern()

template<typename _MatrixType >
void Eigen::SuperLU< _MatrixType >::analyzePattern ( const MatrixType matrix)
inline

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

◆ determinant()

template<typename MatrixType >
SuperLU< MatrixType >::Scalar Eigen::SuperLU< MatrixType >::determinant

◆ factorize()

template<typename MatrixType >
void Eigen::SuperLU< MatrixType >::factorize ( const MatrixType matrix)

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

◆ init()

template<typename _MatrixType >
void Eigen::SuperLU< _MatrixType >::init ( )
inlineprotected

◆ matrixL()

template<typename _MatrixType >
const LMatrixType& Eigen::SuperLU< _MatrixType >::matrixL ( ) const
inline

◆ matrixU()

template<typename _MatrixType >
const UMatrixType& Eigen::SuperLU< _MatrixType >::matrixU ( ) const
inline

◆ permutationP()

template<typename _MatrixType >
const IntColVectorType& Eigen::SuperLU< _MatrixType >::permutationP ( ) const
inline

◆ permutationQ()

template<typename _MatrixType >
const IntRowVectorType& Eigen::SuperLU< _MatrixType >::permutationQ ( ) const
inline

Member Data Documentation

◆ m_analysisIsOk

template<typename _MatrixType >
int Eigen::SuperLUBase< _MatrixType, Derived >::m_analysisIsOk
protected

◆ m_extractedDataAreDirty

template<typename _MatrixType >
bool Eigen::SuperLUBase< _MatrixType, Derived >::m_extractedDataAreDirty
mutableprotected

◆ m_factorizationIsOk

template<typename _MatrixType >
int Eigen::SuperLUBase< _MatrixType, Derived >::m_factorizationIsOk
protected

◆ m_info

template<typename _MatrixType >
ComputationInfo Eigen::SuperLUBase< _MatrixType, Derived >::m_info
mutableprotected

◆ m_isInitialized

template<typename _MatrixType >
bool Eigen::SparseSolverBase< Derived >::m_isInitialized
mutableprotected

◆ m_l

template<typename _MatrixType >
LUMatrixType Eigen::SuperLUBase< _MatrixType, Derived >::m_l
mutableprotected

◆ m_matrix

template<typename _MatrixType >
LUMatrixType Eigen::SuperLUBase< _MatrixType, Derived >::m_matrix
mutableprotected

◆ m_p

template<typename _MatrixType >
IntColVectorType Eigen::SuperLUBase< _MatrixType, Derived >::m_p
mutableprotected

◆ m_q

template<typename _MatrixType >
IntRowVectorType Eigen::SuperLUBase< _MatrixType, Derived >::m_q
mutableprotected

◆ m_sluA

template<typename _MatrixType >
SluMatrix Eigen::SuperLUBase< _MatrixType, Derived >::m_sluA
mutableprotected

◆ m_sluB

template<typename _MatrixType >
SluMatrix Eigen::SuperLUBase< _MatrixType, Derived >::m_sluB
mutableprotected

◆ m_sluBerr

template<typename _MatrixType >
Matrix<RealScalar,Dynamic,1> Eigen::SuperLUBase< _MatrixType, Derived >::m_sluBerr
protected

◆ m_sluCscale

template<typename _MatrixType >
Matrix<RealScalar,Dynamic,1> Eigen::SuperLUBase< _MatrixType, Derived >::m_sluCscale
protected

◆ m_sluEqued

template<typename _MatrixType >
char Eigen::SuperLUBase< _MatrixType, Derived >::m_sluEqued
mutableprotected

◆ m_sluEtree

template<typename _MatrixType >
std::vector<int> Eigen::SuperLUBase< _MatrixType, Derived >::m_sluEtree
mutableprotected

◆ m_sluFerr

template<typename _MatrixType >
Matrix<RealScalar,Dynamic,1> Eigen::SuperLUBase< _MatrixType, Derived >::m_sluFerr
mutableprotected

◆ m_sluL

template<typename _MatrixType >
SuperMatrix Eigen::SuperLUBase< _MatrixType, Derived >::m_sluL
mutableprotected

◆ m_sluOptions

template<typename _MatrixType >
superlu_options_t Eigen::SuperLUBase< _MatrixType, Derived >::m_sluOptions
mutableprotected

◆ m_sluRscale

template<typename _MatrixType >
Matrix<RealScalar,Dynamic,1> Eigen::SuperLUBase< _MatrixType, Derived >::m_sluRscale
mutableprotected

◆ m_sluStat

template<typename _MatrixType >
SuperLUStat_t Eigen::SuperLUBase< _MatrixType, Derived >::m_sluStat
mutableprotected

◆ m_sluU

template<typename _MatrixType >
SuperMatrix Eigen::SuperLUBase< _MatrixType, Derived >::m_sluU
protected

◆ m_sluX

template<typename _MatrixType >
SluMatrix Eigen::SuperLUBase< _MatrixType, Derived >::m_sluX
protected

◆ m_u

template<typename _MatrixType >
LUMatrixType Eigen::SuperLUBase< _MatrixType, Derived >::m_u
mutableprotected

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