A sparse LU factorization and solver based on UmfPack. More...
#include <UmfPackSupport.h>
Public Types | |
enum | { ColsAtCompileTime = MatrixType::ColsAtCompileTime, MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime } |
typedef Matrix< int, MatrixType::RowsAtCompileTime, 1 > | IntColVectorType |
typedef Matrix< int, 1, MatrixType::ColsAtCompileTime > | IntRowVectorType |
typedef SparseMatrix< Scalar > | LUMatrixType |
typedef _MatrixType | MatrixType |
typedef MatrixType::RealScalar | RealScalar |
typedef MatrixType::Scalar | Scalar |
typedef MatrixType::StorageIndex | StorageIndex |
typedef Array< double, UMFPACK_CONTROL, 1 > | UmfpackControl |
typedef Ref< const UmfpackMatrixType, StandardCompressedFormat > | UmfpackMatrixRef |
typedef SparseMatrix< Scalar, ColMajor, int > | UmfpackMatrixType |
typedef Matrix< Scalar, Dynamic, 1 > | Vector |
Public Member Functions | |
template<typename BDerived , typename XDerived > | |
bool | _solve_impl (const MatrixBase< BDerived > &b, MatrixBase< XDerived > &x) const |
template<typename InputMatrixType > | |
void | analyzePattern (const InputMatrixType &matrix) |
Index | cols () const |
template<typename InputMatrixType > | |
void | compute (const InputMatrixType &matrix) |
Scalar | determinant () const |
void | extractData () const |
template<typename InputMatrixType > | |
void | factorize (const InputMatrixType &matrix) |
ComputationInfo | info () const |
Reports whether previous computation was successful. More... | |
const LUMatrixType & | matrixL () const |
const LUMatrixType & | matrixU () const |
const IntColVectorType & | permutationP () const |
const IntRowVectorType & | permutationQ () const |
Index | rows () const |
const UmfpackControl & | umfpackControl () const |
UmfpackControl & | umfpackControl () |
int | umfpackFactorizeReturncode () const |
UmfPackLU () | |
template<typename InputMatrixType > | |
UmfPackLU (const InputMatrixType &matrix) | |
~UmfPackLU () | |
![]() | |
void | _solve_impl (const SparseMatrixBase< Rhs > &b, SparseMatrixBase< Dest > &dest) const |
UmfPackLU< _MatrixType > & | derived () |
const UmfPackLU< _MatrixType > & | derived () const |
const Solve< UmfPackLU< _MatrixType >, Rhs > | solve (const MatrixBase< Rhs > &b) const |
const Solve< UmfPackLU< _MatrixType >, Rhs > | solve (const SparseMatrixBase< Rhs > &b) const |
SparseSolverBase () | |
~SparseSolverBase () | |
Protected Types | |
typedef SparseSolverBase< UmfPackLU< _MatrixType > > | Base |
Protected Member Functions | |
void | analyzePattern_impl () |
void | factorize_impl () |
template<typename MatrixDerived > | |
void | grab (const EigenBase< MatrixDerived > &A) |
void | grab (const UmfpackMatrixRef &A) |
void | init () |
Protected Attributes | |
int | m_analysisIsOk |
UmfpackControl | m_control |
UmfpackMatrixType | m_dummy |
bool | m_extractedDataAreDirty |
int | m_fact_errorCode |
int | m_factorizationIsOk |
ComputationInfo | m_info |
LUMatrixType | m_l |
void * | m_numeric |
IntColVectorType | m_p |
IntRowVectorType | m_q |
void * | m_symbolic |
LUMatrixType | m_u |
UmfpackMatrixRef | mp_matrix |
![]() | |
bool | m_isInitialized |
Private Member Functions | |
UmfPackLU (const UmfPackLU &) | |
A sparse LU factorization and solver based on UmfPack.
This class allows to solve for A.X = B sparse linear problems via a LU factorization using the UmfPack library. The sparse matrix A must be squared and full rank. The vectors or matrices X and B can be either dense or sparse.
_MatrixType | the type of the sparse matrix A, it must be a SparseMatrix<> |
Definition at line 134 of file UmfPackSupport.h.
|
protected |
Definition at line 137 of file UmfPackSupport.h.
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> Eigen::UmfPackLU< _MatrixType >::IntColVectorType |
Definition at line 147 of file UmfPackSupport.h.
typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> Eigen::UmfPackLU< _MatrixType >::IntRowVectorType |
Definition at line 146 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar> Eigen::UmfPackLU< _MatrixType >::LUMatrixType |
Definition at line 148 of file UmfPackSupport.h.
typedef _MatrixType Eigen::UmfPackLU< _MatrixType >::MatrixType |
Definition at line 141 of file UmfPackSupport.h.
typedef MatrixType::RealScalar Eigen::UmfPackLU< _MatrixType >::RealScalar |
Definition at line 143 of file UmfPackSupport.h.
typedef MatrixType::Scalar Eigen::UmfPackLU< _MatrixType >::Scalar |
Definition at line 142 of file UmfPackSupport.h.
typedef MatrixType::StorageIndex Eigen::UmfPackLU< _MatrixType >::StorageIndex |
Definition at line 144 of file UmfPackSupport.h.
typedef Array<double, UMFPACK_CONTROL, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackControl |
Definition at line 158 of file UmfPackSupport.h.
typedef Ref<const UmfpackMatrixType, StandardCompressedFormat> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixRef |
Definition at line 150 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar,ColMajor,int> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixType |
Definition at line 149 of file UmfPackSupport.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::UmfPackLU< _MatrixType >::Vector |
Definition at line 145 of file UmfPackSupport.h.
anonymous enum |
Enumerator | |
---|---|
ColsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 151 of file UmfPackSupport.h.
|
inline |
Definition at line 160 of file UmfPackSupport.h.
|
inlineexplicit |
Definition at line 167 of file UmfPackSupport.h.
|
inline |
Definition at line 174 of file UmfPackSupport.h.
|
inlineprivate |
Definition at line 382 of file UmfPackSupport.h.
bool Eigen::UmfPackLU< MatrixType >::_solve_impl | ( | const MatrixBase< BDerived > & | b, |
MatrixBase< XDerived > & | x | ||
) | const |
Definition at line 424 of file UmfPackSupport.h.
|
inline |
Performs a symbolic decomposition on the sparcity of matrix.
This function is particularly useful when solving for several problems having the same structure.
Definition at line 239 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 319 of file UmfPackSupport.h.
|
inline |
Definition at line 181 of file UmfPackSupport.h.
|
inline |
Computes the sparse Cholesky decomposition of matrix Note that the matrix should be column-major, and in compressed format for best performance.
Definition at line 223 of file UmfPackSupport.h.
UmfPackLU< MatrixType >::Scalar Eigen::UmfPackLU< MatrixType >::determinant | ( | ) | const |
Definition at line 415 of file UmfPackSupport.h.
void Eigen::UmfPackLU< MatrixType >::extractData | ( | ) | const |
Definition at line 387 of file UmfPackSupport.h.
|
inline |
Performs a numeric decomposition of matrix
The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.
Definition at line 289 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 335 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 346 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 352 of file UmfPackSupport.h.
|
inline |
Reports whether previous computation was successful.
Success
if computation was succesful, NumericalIssue
if the matrix.appears to be negative. Definition at line 188 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 310 of file UmfPackSupport.h.
|
inline |
Definition at line 194 of file UmfPackSupport.h.
|
inline |
Definition at line 200 of file UmfPackSupport.h.
|
inline |
Definition at line 206 of file UmfPackSupport.h.
|
inline |
Definition at line 212 of file UmfPackSupport.h.
|
inline |
Definition at line 180 of file UmfPackSupport.h.
|
inline |
Provides access to the control settings array used by UmfPack.
If this array contains NaN's, the default values are used.
See UMFPACK documentation for details.
Definition at line 266 of file UmfPackSupport.h.
|
inline |
Provides access to the control settings array used by UmfPack.
If this array contains NaN's, the default values are used.
See UMFPACK documentation for details.
Definition at line 277 of file UmfPackSupport.h.
|
inline |
Provides the return status code returned by UmfPack during the numeric factorization.
Definition at line 254 of file UmfPackSupport.h.
|
protected |
Definition at line 378 of file UmfPackSupport.h.
|
protected |
Definition at line 364 of file UmfPackSupport.h.
|
protected |
Definition at line 370 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 379 of file UmfPackSupport.h.
|
protected |
Definition at line 363 of file UmfPackSupport.h.
|
protected |
Definition at line 377 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 376 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 362 of file UmfPackSupport.h.
|
protected |
Definition at line 373 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 367 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 368 of file UmfPackSupport.h.
|
protected |
Definition at line 374 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 366 of file UmfPackSupport.h.
|
protected |
Definition at line 371 of file UmfPackSupport.h.