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, 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) | |
void | umfpackReportControl () |
void | umfpackReportInfo () |
void | umfpackReportStatus () |
~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 |
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 |
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 152 of file UmfPackSupport.h.
|
protected |
Definition at line 155 of file UmfPackSupport.h.
typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> Eigen::UmfPackLU< _MatrixType >::IntColVectorType |
Definition at line 165 of file UmfPackSupport.h.
typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> Eigen::UmfPackLU< _MatrixType >::IntRowVectorType |
Definition at line 164 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar> Eigen::UmfPackLU< _MatrixType >::LUMatrixType |
Definition at line 166 of file UmfPackSupport.h.
typedef _MatrixType Eigen::UmfPackLU< _MatrixType >::MatrixType |
Definition at line 159 of file UmfPackSupport.h.
typedef MatrixType::RealScalar Eigen::UmfPackLU< _MatrixType >::RealScalar |
Definition at line 161 of file UmfPackSupport.h.
typedef MatrixType::Scalar Eigen::UmfPackLU< _MatrixType >::Scalar |
Definition at line 160 of file UmfPackSupport.h.
typedef MatrixType::StorageIndex Eigen::UmfPackLU< _MatrixType >::StorageIndex |
Definition at line 162 of file UmfPackSupport.h.
typedef Array<double, UMFPACK_CONTROL, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackControl |
Definition at line 176 of file UmfPackSupport.h.
typedef Array<double, UMFPACK_INFO, 1> Eigen::UmfPackLU< _MatrixType >::UmfpackInfo |
Definition at line 177 of file UmfPackSupport.h.
typedef Ref<const UmfpackMatrixType, StandardCompressedFormat> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixRef |
Definition at line 168 of file UmfPackSupport.h.
typedef SparseMatrix<Scalar,ColMajor,int> Eigen::UmfPackLU< _MatrixType >::UmfpackMatrixType |
Definition at line 167 of file UmfPackSupport.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::UmfPackLU< _MatrixType >::Vector |
Definition at line 163 of file UmfPackSupport.h.
anonymous enum |
Enumerator | |
---|---|
ColsAtCompileTime | |
MaxColsAtCompileTime |
Definition at line 169 of file UmfPackSupport.h.
|
inline |
Definition at line 179 of file UmfPackSupport.h.
|
inlineexplicit |
Definition at line 186 of file UmfPackSupport.h.
|
inline |
Definition at line 193 of file UmfPackSupport.h.
|
inlineprivate |
Definition at line 431 of file UmfPackSupport.h.
bool Eigen::UmfPackLU< MatrixType >::_solve_impl | ( | const MatrixBase< BDerived > & | b, |
MatrixBase< XDerived > & | x | ||
) | const |
Definition at line 473 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 258 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 368 of file UmfPackSupport.h.
|
inline |
Definition at line 200 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 242 of file UmfPackSupport.h.
UmfPackLU< MatrixType >::Scalar Eigen::UmfPackLU< MatrixType >::determinant | ( | ) | const |
Definition at line 464 of file UmfPackSupport.h.
void Eigen::UmfPackLU< MatrixType >::extractData | ( | ) | const |
Definition at line 436 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 308 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 382 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 394 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 400 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 207 of file UmfPackSupport.h.
|
inlineprotected |
Definition at line 357 of file UmfPackSupport.h.
|
inline |
Definition at line 213 of file UmfPackSupport.h.
|
inline |
Definition at line 219 of file UmfPackSupport.h.
|
inline |
Definition at line 225 of file UmfPackSupport.h.
|
inline |
Definition at line 231 of file UmfPackSupport.h.
|
inline |
Definition at line 199 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 285 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 296 of file UmfPackSupport.h.
|
inline |
Provides the return status code returned by UmfPack during the numeric factorization.
Definition at line 273 of file UmfPackSupport.h.
|
inline |
Prints the current UmfPack control settings.
Definition at line 323 of file UmfPackSupport.h.
|
inline |
Prints statistics collected by UmfPack.
Definition at line 332 of file UmfPackSupport.h.
|
inline |
Prints the status of the previous factorization operation performed by UmfPack (symbolic or numerical factorization).
Definition at line 342 of file UmfPackSupport.h.
|
protected |
Definition at line 427 of file UmfPackSupport.h.
|
protected |
Definition at line 412 of file UmfPackSupport.h.
|
protected |
Definition at line 419 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 428 of file UmfPackSupport.h.
|
protected |
Definition at line 411 of file UmfPackSupport.h.
|
protected |
Definition at line 426 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 425 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 410 of file UmfPackSupport.h.
|
protected |
Definition at line 422 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 416 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 417 of file UmfPackSupport.h.
|
protected |
Definition at line 423 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 415 of file UmfPackSupport.h.
|
mutableprotected |
Definition at line 413 of file UmfPackSupport.h.
|
protected |
Definition at line 420 of file UmfPackSupport.h.