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 Array< double, UMFPACK_INFO, 1 > | UmfpackInfo |
typedef Ref< const UmfpackMatrixType, StandardCompressedFormat > | UmfpackMatrixRef |
typedef SparseMatrix< Scalar, ColMajor, StorageIndex > | 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 |
void | printUmfpackControl () |
void | printUmfpackInfo () |
void | printUmfpackStatus () |
Index | rows () const |
const UmfpackControl & | umfpackControl () const |
UmfpackControl & | umfpackControl () |
int | umfpackFactorizeReturncode () const |
UmfPackLU () | |
template<typename InputMatrixType > | |
UmfPackLU (const InputMatrixType &matrix) | |
~UmfPackLU () | |
Public Member Functions inherited from Eigen::SparseSolverBase< UmfPackLU< _MatrixType > > | |
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 |
StorageIndex | 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 |
UmfpackInfo | m_umfpackInfo |
UmfpackMatrixRef | mp_matrix |
Protected Attributes inherited from Eigen::SparseSolverBase< UmfPackLU< _MatrixType > > | |
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 288 of file UmfPackSupport.h.
|
protected |
Definition at line 291 of file UmfPackSupport.h.
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> Eigen::UmfPackLU< _MatrixType >::IntColVectorType |
Definition at line 301 of file UmfPackSupport.h.
typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> Eigen::UmfPackLU< _MatrixType >::IntRowVectorType |
Definition at line 300 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar> Eigen::UmfPackLU< _MatrixType >::LUMatrixType |
Definition at line 302 of file UmfPackSupport.h.
typedef _MatrixType Eigen::UmfPackLU< _MatrixType >::MatrixType |
Definition at line 295 of file UmfPackSupport.h.
typedef MatrixType::RealScalar Eigen::UmfPackLU< _MatrixType >::RealScalar |
Definition at line 297 of file UmfPackSupport.h.
typedef MatrixType::Scalar Eigen::UmfPackLU< _MatrixType >::Scalar |
Definition at line 296 of file UmfPackSupport.h.
typedef MatrixType::StorageIndex Eigen::UmfPackLU< _MatrixType >::StorageIndex |
Definition at line 298 of file UmfPackSupport.h.
typedef Array<double, UMFPACK_CONTROL, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackControl |
Definition at line 312 of file UmfPackSupport.h.
typedef Array<double, UMFPACK_INFO, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackInfo |
Definition at line 313 of file UmfPackSupport.h.
typedef Ref<const UmfpackMatrixType, StandardCompressedFormat> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixRef |
Definition at line 304 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar,ColMajor,StorageIndex> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixType |
Definition at line 303 of file UmfPackSupport.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::UmfPackLU< _MatrixType >::Vector |
Definition at line 299 of file UmfPackSupport.h.
anonymous enum |
Enumerator | |
---|---|
ColsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 305 of file UmfPackSupport.h.
|
inline |
Definition at line 315 of file UmfPackSupport.h.
|
inlineexplicit |
Definition at line 322 of file UmfPackSupport.h.
|
inline |
Definition at line 329 of file UmfPackSupport.h.
|
inlineprivate |
Definition at line 567 of file UmfPackSupport.h.
bool Eigen::UmfPackLU< MatrixType >::_solve_impl | ( | const MatrixBase< BDerived > & | b, |
MatrixBase< XDerived > & | x | ||
) | const |
Definition at line 609 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 394 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 504 of file UmfPackSupport.h.
|
inline |
Definition at line 336 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 378 of file UmfPackSupport.h.
UmfPackLU< MatrixType >::Scalar Eigen::UmfPackLU< MatrixType >::determinant | ( | ) | const |
Definition at line 600 of file UmfPackSupport.h.
void Eigen::UmfPackLU< MatrixType >::extractData | ( | ) | const |
Definition at line 572 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 444 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 518 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 530 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 536 of file UmfPackSupport.h.
|
inline |
Reports whether previous computation was successful.
Success
if computation was successful, NumericalIssue
if the matrix.appears to be negative. Definition at line 343 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 493 of file UmfPackSupport.h.
|
inline |
Definition at line 349 of file UmfPackSupport.h.
|
inline |
Definition at line 355 of file UmfPackSupport.h.
|
inline |
Definition at line 361 of file UmfPackSupport.h.
|
inline |
Definition at line 367 of file UmfPackSupport.h.
|
inline |
Prints the current UmfPack control settings.
Definition at line 459 of file UmfPackSupport.h.
|
inline |
Prints statistics collected by UmfPack.
Definition at line 468 of file UmfPackSupport.h.
|
inline |
Prints the status of the previous factorization operation performed by UmfPack (symbolic or numerical factorization).
Definition at line 478 of file UmfPackSupport.h.
|
inline |
Definition at line 335 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 421 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 432 of file UmfPackSupport.h.
|
inline |
Provides the return status code returned by UmfPack during the numeric factorization.
Definition at line 409 of file UmfPackSupport.h.
|
protected |
Definition at line 563 of file UmfPackSupport.h.
|
protected |
Definition at line 548 of file UmfPackSupport.h.
|
protected |
Definition at line 555 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 564 of file UmfPackSupport.h.
|
protected |
Definition at line 547 of file UmfPackSupport.h.
|
protected |
Definition at line 562 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 561 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 546 of file UmfPackSupport.h.
|
protected |
Definition at line 558 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 552 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 553 of file UmfPackSupport.h.
|
protected |
Definition at line 559 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 551 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 549 of file UmfPackSupport.h.
|
protected |
Definition at line 556 of file UmfPackSupport.h.