Path Tracer
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | 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 >:
Eigen::SuperLUBase< _MatrixType, SuperLU< _MatrixType > > Eigen::SparseSolverBase< SuperLU< _MatrixType > > Eigen::internal::noncopyable

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< Scalar > LUMatrixType
 

Public Member Functions

 SuperLU (const MatrixType &matrix)
 
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 > >
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< SuperLU< _MatrixType > >
 SparseSolverBase ()
 
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
 
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< SuperLU< _MatrixType > >
bool m_isInitialized
 

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 Function Documentation

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

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

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