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 >:
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 ()
 
SuperLU< _MatrixType > & derived ()
 
const SuperLU< _MatrixType > & derived () const
 
void extractData () const
 
void init ()
 
void initFactorization (const MatrixType &a)
 

Protected Attributes

int m_analysisIsOk
 
bool m_extractedDataAreDirty
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
bool m_isInitialized
 
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< intm_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::SuperLUBase< _MatrixType, SuperLU< _MatrixType > >
int m_analysisIsOk
 
bool m_extractedDataAreDirty
 
int m_factorizationIsOk
 
ComputationInfo m_info
 
bool m_isInitialized
 
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< intm_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
 

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
Sparse solver concept, class SparseLU

Definition at line 488 of file SuperLUSupport.h.

Member Typedef Documentation

◆ Base

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

Definition at line 491 of file SuperLUSupport.h.

◆ IntColVectorType

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

Definition at line 497 of file SuperLUSupport.h.

◆ IntRowVectorType

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

Definition at line 496 of file SuperLUSupport.h.

◆ LMatrixType

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

Definition at line 500 of file SuperLUSupport.h.

◆ LUMatrixType

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

Definition at line 499 of file SuperLUSupport.h.

◆ MatrixType

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

Definition at line 492 of file SuperLUSupport.h.

◆ PermutationMap

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

Definition at line 498 of file SuperLUSupport.h.

◆ RealScalar

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

Definition at line 494 of file SuperLUSupport.h.

◆ Scalar

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

Definition at line 493 of file SuperLUSupport.h.

◆ StorageIndex

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

Definition at line 495 of file SuperLUSupport.h.

◆ UMatrixType

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

Definition at line 501 of file SuperLUSupport.h.

Constructor & Destructor Documentation

◆ SuperLU() [1/3]

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

Definition at line 506 of file SuperLUSupport.h.

◆ SuperLU() [2/3]

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

Definition at line 508 of file SuperLUSupport.h.

◆ ~SuperLU()

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

Definition at line 514 of file SuperLUSupport.h.

◆ SuperLU() [3/3]

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

Definition at line 609 of file SuperLUSupport.h.

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

Definition at line 649 of file SuperLUSupport.h.

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

Definition at line 524 of file SuperLUSupport.h.

◆ determinant()

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

Definition at line 792 of file SuperLUSupport.h.

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

Definition at line 613 of file SuperLUSupport.h.

◆ init()

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

Definition at line 596 of file SuperLUSupport.h.

◆ matrixL()

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

Definition at line 543 of file SuperLUSupport.h.

◆ matrixU()

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

Definition at line 549 of file SuperLUSupport.h.

◆ permutationP()

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

Definition at line 555 of file SuperLUSupport.h.

◆ permutationQ()

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

Definition at line 561 of file SuperLUSupport.h.

Member Data Documentation

◆ m_analysisIsOk

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

Definition at line 463 of file SuperLUSupport.h.

◆ m_extractedDataAreDirty

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

Definition at line 464 of file SuperLUSupport.h.

◆ m_factorizationIsOk

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

Definition at line 462 of file SuperLUSupport.h.

◆ m_info

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

Definition at line 461 of file SuperLUSupport.h.

◆ m_isInitialized

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

Definition at line 119 of file SparseSolverBase.h.

◆ m_l

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

Definition at line 445 of file SuperLUSupport.h.

◆ m_matrix

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

Definition at line 450 of file SuperLUSupport.h.

◆ m_p

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

Definition at line 447 of file SuperLUSupport.h.

◆ m_q

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

Definition at line 448 of file SuperLUSupport.h.

◆ m_sluA

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

Definition at line 451 of file SuperLUSupport.h.

◆ m_sluB

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

Definition at line 453 of file SuperLUSupport.h.

◆ m_sluBerr

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

Definition at line 458 of file SuperLUSupport.h.

◆ m_sluCscale

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

Definition at line 457 of file SuperLUSupport.h.

◆ m_sluEqued

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

Definition at line 459 of file SuperLUSupport.h.

◆ m_sluEtree

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

Definition at line 456 of file SuperLUSupport.h.

◆ m_sluFerr

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

Definition at line 458 of file SuperLUSupport.h.

◆ m_sluL

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

Definition at line 452 of file SuperLUSupport.h.

◆ m_sluOptions

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

Definition at line 455 of file SuperLUSupport.h.

◆ m_sluRscale

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

Definition at line 457 of file SuperLUSupport.h.

◆ m_sluStat

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

Definition at line 454 of file SuperLUSupport.h.

◆ m_sluU

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

Definition at line 452 of file SuperLUSupport.h.

◆ m_sluX

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

Definition at line 453 of file SuperLUSupport.h.

◆ m_u

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

Definition at line 446 of file SuperLUSupport.h.


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


gtsam
Author(s):
autogenerated on Sat Jun 1 2024 03:11:01