Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
SuperLU< _MatrixType > Class Template Reference

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

#include <SuperLUSupport.h>

+ Inheritance diagram for SuperLU< _MatrixType >:

List of all members.

Public Types

typedef SuperLUBase
< _MatrixType, SuperLU
Base
typedef Base::Index Index
typedef Base::IntColVectorType IntColVectorType
typedef Base::IntRowVectorType IntRowVectorType
typedef TriangularView
< LUMatrixType, Lower|UnitDiag
LMatrixType
typedef Base::LUMatrixType LUMatrixType
typedef _MatrixType MatrixType
typedef Base::RealScalar RealScalar
typedef Base::Scalar Scalar
typedef TriangularView
< LUMatrixType, Upper
UMatrixType
typedef Matrix< Scalar,
Dynamic, 1 > 
Vector

Public Member Functions

void analyzePattern (const MatrixType &matrix)
Index cols () const
void compute (const MatrixType &matrix)
SuperLU< _MatrixType > & derived ()
const SuperLU< _MatrixType > & derived () const
Scalar determinant () const
void dumpMemory (Stream &s)
void factorize (const MatrixType &matrix)
ComputationInfo info () const
 Reports whether previous computation was successful.
const LMatrixTypematrixL () const
const UMatrixTypematrixU () const
superlu_options_toptions ()
const IntColVectorTypepermutationP () const
const IntRowVectorTypepermutationQ () const
Index rows () const
const internal::solve_retval
< SuperLUBase, Rhs > 
solve (const MatrixBase< Rhs > &b) const
 SuperLU ()
 SuperLU (const MatrixType &matrix)
 ~SuperLU ()

Protected Member Functions

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

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<>
See also:
Solving linear problems

Member Typedef Documentation

typedef SuperLUBase<_MatrixType,SuperLU> Base
typedef Base::Index Index
typedef _MatrixType MatrixType
typedef Matrix<Scalar,Dynamic,1> Vector [inherited]

Constructor & Destructor Documentation

SuperLU ( ) [inline]
SuperLU ( const MatrixType matrix) [inline]
~SuperLU ( ) [inline]

Member Function Documentation

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

Reimplemented from SuperLUBase< _MatrixType, SuperLU< _MatrixType > >.

References SuperLUBase< _MatrixType, Derived >::analyzePattern(), Eigen::InvalidInput, SuperLUBase< _MatrixType, SuperLU< _MatrixType > >::m_info, and SuperLUBase< _MatrixType, SuperLU< _MatrixType > >::m_isInitialized.

void clearFactors ( ) [inline, protected, inherited]
Index cols ( void  ) const [inline, inherited]
void compute ( const MatrixType matrix) [inline, inherited]

Computes the sparse Cholesky decomposition of matrix

Referenced by SuperLU< _MatrixType >::SuperLU().

SuperLU< _MatrixType > & derived ( ) [inline, inherited]
const SuperLU< _MatrixType > & derived ( ) const [inline, inherited]
void dumpMemory ( Stream &  s) [inline, inherited]
void extractData ( ) const [protected, inherited]
void 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()

References Eigen::InvalidInput, Eigen::NumericalIssue, and Eigen::Success.

ComputationInfo info ( ) const [inline, inherited]

Reports whether previous computation was successful.

Returns:
Success if computation was succesful, NumericalIssue if the matrix.appears to be negative.
void init ( ) [inline, protected]
void initFactorization ( const MatrixType a) [inline, protected, inherited]
const LMatrixType& matrixL ( ) const [inline]
const UMatrixType& matrixU ( ) const [inline]
superlu_options_t& options ( ) [inline, inherited]
Returns:
a reference to the Super LU option object to configure the Super LU algorithms.
const IntColVectorType& permutationP ( ) const [inline]
const IntRowVectorType& permutationQ ( ) const [inline]
Index rows ( void  ) const [inline, inherited]
const internal::solve_retval<SuperLUBase, Rhs> solve ( const MatrixBase< Rhs > &  b) const [inline, inherited]
Returns:
the solution x of $ A x = b $ using the current decomposition of A.
See also:
compute()

Member Data Documentation

int m_analysisIsOk [protected, inherited]
bool m_extractedDataAreDirty [mutable, protected, inherited]
int m_factorizationIsOk [protected, inherited]
ComputationInfo m_info [mutable, protected, inherited]
bool m_isInitialized [protected, inherited]
LUMatrixType m_l [mutable, protected, inherited]
LUMatrixType m_matrix [mutable, protected, inherited]
IntColVectorType m_p [mutable, protected, inherited]
IntRowVectorType m_q [mutable, protected, inherited]
SluMatrix m_sluA [mutable, protected, inherited]
SluMatrix m_sluB [mutable, protected, inherited]
Matrix<RealScalar,Dynamic,1> m_sluBerr [mutable, protected, inherited]
Matrix<RealScalar,Dynamic,1> m_sluCscale [mutable, protected, inherited]
char m_sluEqued [mutable, protected, inherited]
std::vector<int> m_sluEtree [mutable, protected, inherited]
Matrix<RealScalar,Dynamic,1> m_sluFerr [mutable, protected, inherited]
SuperMatrix m_sluL [mutable, protected, inherited]
superlu_options_t m_sluOptions [mutable, protected, inherited]
Matrix<RealScalar,Dynamic,1> m_sluRscale [mutable, protected, inherited]
SuperLUStat_t m_sluStat [mutable, protected, inherited]
SuperMatrix m_sluU [mutable, protected, inherited]
SluMatrix m_sluX [mutable, protected, inherited]
LUMatrixType m_u [mutable, protected, inherited]

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