Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
Eigen::SuperLUBase< _MatrixType, Derived > Class Template Reference

The base class for the direct and incomplete LU factorization of SuperLU. More...

#include <SuperLUSupport.h>

+ Inheritance diagram for Eigen::SuperLUBase< _MatrixType, Derived >:
+ Collaboration diagram for Eigen::SuperLUBase< _MatrixType, Derived >:

Public Types

typedef _MatrixType MatrixType
 
typedef MatrixType::Scalar Scalar
 
typedef MatrixType::RealScalar RealScalar
 
typedef MatrixType::Index Index
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 
typedef Matrix< int, 1, MatrixType::ColsAtCompileTime > IntRowVectorType
 
typedef Matrix< int, MatrixType::RowsAtCompileTime, 1 > IntColVectorType
 
typedef SparseMatrix< Scalar > LUMatrixType
 

Public Member Functions

Derived & derived ()
 
const Derived & derived () const
 
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)
 
template<typename Rhs >
const internal::solve_retval< SuperLUBase, Rhs > solve (const MatrixBase< Rhs > &b) const
 
template<typename Rhs >
const internal::sparse_solve_retval< SuperLUBase, Rhs > solve (const SparseMatrixBase< Rhs > &b) const
 
void analyzePattern (const MatrixType &)
 
template<typename Stream >
void dumpMemory (Stream &)
 

Protected Member Functions

void initFactorization (const MatrixType &a)
 
void init ()
 
void extractData () const
 
void clearFactors ()
 

Protected Attributes

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
 
bool m_isInitialized
 
int m_factorizationIsOk
 
int m_analysisIsOk
 
bool m_extractedDataAreDirty
 

Detailed Description

template<typename _MatrixType, typename Derived>
class Eigen::SuperLUBase< _MatrixType, Derived >

The base class for the direct and incomplete LU factorization of SuperLU.

Definition at line 291 of file SuperLUSupport.h.

Member Function Documentation

template<typename _MatrixType, typename Derived>
void Eigen::SuperLUBase< _MatrixType, Derived >::analyzePattern ( const MatrixType &  )
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 371 of file SuperLUSupport.h.

372  {
373  m_isInitialized = true;
374  m_info = Success;
375  m_analysisIsOk = true;
376  m_factorizationIsOk = false;
377  }
template<typename _MatrixType, typename Derived>
void Eigen::SuperLUBase< _MatrixType, Derived >::compute ( const MatrixType &  matrix)
inline

Computes the sparse Cholesky decomposition of matrix

Definition at line 333 of file SuperLUSupport.h.

334  {
335  derived().analyzePattern(matrix);
336  derived().factorize(matrix);
337  }
Definition: math3d.h:219
template<typename _MatrixType, typename Derived>
ComputationInfo Eigen::SuperLUBase< _MatrixType, Derived >::info ( ) const
inline

Reports whether previous computation was successful.

Returns
Success if computation was succesful, NumericalIssue if the matrix.appears to be negative.

Definition at line 326 of file SuperLUSupport.h.

327  {
328  eigen_assert(m_isInitialized && "Decomposition is not initialized.");
329  return m_info;
330  }
template<typename _MatrixType, typename Derived>
superlu_options_t& Eigen::SuperLUBase< _MatrixType, Derived >::options ( )
inline
Returns
a reference to the Super LU option object to configure the Super LU algorithms.

Definition at line 319 of file SuperLUSupport.h.

319 { return m_sluOptions; }
template<typename _MatrixType, typename Derived>
template<typename Rhs >
const internal::solve_retval<SuperLUBase, Rhs> Eigen::SuperLUBase< _MatrixType, Derived >::solve ( const MatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

Definition at line 344 of file SuperLUSupport.h.

345  {
346  eigen_assert(m_isInitialized && "SuperLU is not initialized.");
347  eigen_assert(rows()==b.rows()
348  && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
349  return internal::solve_retval<SuperLUBase, Rhs>(*this, b.derived());
350  }
template<typename _MatrixType, typename Derived>
template<typename Rhs >
const internal::sparse_solve_retval<SuperLUBase, Rhs> Eigen::SuperLUBase< _MatrixType, Derived >::solve ( const SparseMatrixBase< Rhs > &  b) const
inline
Returns
the solution x of $ A x = b $ using the current decomposition of A.
See also
compute()

Definition at line 357 of file SuperLUSupport.h.

358  {
359  eigen_assert(m_isInitialized && "SuperLU is not initialized.");
360  eigen_assert(rows()==b.rows()
361  && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
362  return internal::sparse_solve_retval<SuperLUBase, Rhs>(*this, b.derived());
363  }

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