Public Types | Public Member Functions | Protected Member Functions | 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 >:
Inheritance graph
[legend]

Public Types

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

Public Member Functions

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

Protected Member Functions

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

Private Member Functions

 SuperLU (SuperLU &)
 

Additional Inherited Members

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

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.
See also
TutorialSparseSolverConcept, class SparseLU

Definition at line 488 of file SuperLUSupport.h.

Member Typedef Documentation

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

Definition at line 491 of file SuperLUSupport.h.

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

Definition at line 497 of file SuperLUSupport.h.

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

Definition at line 496 of file SuperLUSupport.h.

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

Definition at line 500 of file SuperLUSupport.h.

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

Definition at line 499 of file SuperLUSupport.h.

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

Definition at line 492 of file SuperLUSupport.h.

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

Definition at line 498 of file SuperLUSupport.h.

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

Definition at line 494 of file SuperLUSupport.h.

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

Definition at line 493 of file SuperLUSupport.h.

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

Definition at line 495 of file SuperLUSupport.h.

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

Definition at line 501 of file SuperLUSupport.h.

Constructor & Destructor Documentation

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

Definition at line 506 of file SuperLUSupport.h.

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

Definition at line 508 of file SuperLUSupport.h.

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

Definition at line 514 of file SuperLUSupport.h.

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

Definition at line 609 of file SuperLUSupport.h.

Member Function Documentation

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

Definition at line 649 of file SuperLUSupport.h.

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

Definition at line 524 of file SuperLUSupport.h.

template<typename MatrixType >
SuperLU< MatrixType >::Scalar Eigen::SuperLU< MatrixType >::determinant ( ) const

Definition at line 793 of file SuperLUSupport.h.

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

Definition at line 613 of file SuperLUSupport.h.

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

Definition at line 596 of file SuperLUSupport.h.

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

Definition at line 543 of file SuperLUSupport.h.

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

Definition at line 549 of file SuperLUSupport.h.

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

Definition at line 555 of file SuperLUSupport.h.

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

Definition at line 561 of file SuperLUSupport.h.


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


hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:10:22