LU decomposition of a sparse matrix and associated features. More...
#include <SparseLU.h>
Public Types | |
typedef _MatrixType | MatrixType |
Public Member Functions | |
void | compute (const _MatrixType &matrix) |
int | flags () const |
int | orderingMethod () const |
RealScalar | precision () const |
void | setFlags (int f) |
void | setOrderingMethod (int m) |
void | setPrecision (RealScalar v) |
template<typename BDerived , typename XDerived > | |
bool | solve (const MatrixBase< BDerived > &b, MatrixBase< XDerived > *x, const int transposed=SvNoTrans) const |
template<typename BDerived , typename XDerived > | |
bool | solve (const MatrixBase< BDerived > &b, MatrixBase< XDerived > *x) const |
SparseLU (int flags=0) | |
SparseLU (const _MatrixType &matrix, int flags=0) | |
bool | succeeded (void) const |
Protected Types | |
enum | { MatrixLUIsDirty = 0x10000 } |
typedef SparseMatrix< Scalar > | LUMatrixType |
typedef NumTraits< typename _MatrixType::Scalar >::Real | RealScalar |
typedef _MatrixType::Scalar | Scalar |
Protected Attributes | |
int | m_flags |
RealScalar | m_precision |
int | m_status |
bool | m_succeeded |
LU decomposition of a sparse matrix and associated features.
_MatrixType | the type of the matrix of which we are computing the LU factorization |
Definition at line 45 of file SparseLU.h.
typedef SparseMatrix<Scalar> SparseLU< _MatrixType, Backend >::LUMatrixType [protected] |
Definition at line 50 of file SparseLU.h.
typedef _MatrixType SparseLU< _MatrixType, Backend >::MatrixType |
Reimplemented in SparseLU< _MatrixType, UmfPack >.
Definition at line 57 of file SparseLU.h.
typedef NumTraits<typename _MatrixType::Scalar>::Real SparseLU< _MatrixType, Backend >::RealScalar [protected] |
Reimplemented in SparseLU< MatrixType, SuperLU >, and SparseLU< _MatrixType, UmfPack >.
Definition at line 49 of file SparseLU.h.
typedef _MatrixType::Scalar SparseLU< _MatrixType, Backend >::Scalar [protected] |
Reimplemented in SparseLU< MatrixType, SuperLU >, and SparseLU< _MatrixType, UmfPack >.
Definition at line 48 of file SparseLU.h.
anonymous enum [protected] |
Definition at line 52 of file SparseLU.h.
SparseLU< _MatrixType, Backend >::SparseLU | ( | int | flags = 0 | ) | [inline] |
Creates a dummy LU factorization object with flags flags.
Reimplemented in SparseLU< MatrixType, SuperLU >, and SparseLU< _MatrixType, UmfPack >.
Definition at line 60 of file SparseLU.h.
SparseLU< _MatrixType, Backend >::SparseLU | ( | const _MatrixType & | matrix, |
int | flags = 0 |
||
) | [inline] |
Creates a LU object and compute the respective factorization of matrix using flags flags.
Reimplemented in SparseLU< MatrixType, SuperLU >, and SparseLU< _MatrixType, UmfPack >.
Definition at line 68 of file SparseLU.h.
void SparseLU< MatrixType >::compute | ( | const MatrixType & | matrix | ) |
Computes/re-computes the LU factorization
Computes / recomputes the LU decomposition of matrix a using the default algorithm.
Reimplemented in SparseLU< MatrixType, SuperLU >, and SparseLU< _MatrixType, UmfPack >.
Definition at line 142 of file SparseLU.h.
int SparseLU< _MatrixType, Backend >::flags | ( | ) | const [inline] |
Definition at line 102 of file SparseLU.h.
int SparseLU< _MatrixType, Backend >::orderingMethod | ( | ) | const [inline] |
Definition at line 110 of file SparseLU.h.
RealScalar SparseLU< _MatrixType, Backend >::precision | ( | ) | const [inline] |
void SparseLU< _MatrixType, Backend >::setFlags | ( | int | f | ) | [inline] |
Sets the flags. Possible values are:
Definition at line 100 of file SparseLU.h.
void SparseLU< _MatrixType, Backend >::setOrderingMethod | ( | int | m | ) | [inline] |
Definition at line 104 of file SparseLU.h.
void SparseLU< _MatrixType, Backend >::setPrecision | ( | RealScalar | v | ) | [inline] |
Sets the relative threshold value used to prune zero coefficients during the decomposition.
Setting a value greater than zero speeds up computation, and yields to an imcomplete factorization with fewer non zero coefficients. Such approximate factors are especially useful to initialize an iterative solver.
Note that the exact meaning of this parameter might depends on the actual backend. Moreover, not all backends support this feature.
Definition at line 85 of file SparseLU.h.
bool SparseLU< _MatrixType, Backend >::solve | ( | const MatrixBase< BDerived > & | b, |
MatrixBase< XDerived > * | x, | ||
const int | transposed = SvNoTrans |
||
) | const |
Computes *x = U^-1 L^-1 b
If transpose is set to SvTranspose or SvAdjoint, the solution of the transposed/adjoint system is computed instead.
Not all backends implement the solution of the transposed or adjoint system.
Reimplemented in SparseLU< MatrixType, SuperLU >.
Definition at line 157 of file SparseLU.h.
bool SparseLU< _MatrixType, Backend >::solve | ( | const MatrixBase< BDerived > & | b, |
MatrixBase< XDerived > * | x | ||
) | const |
Definition at line 326 of file UmfPackSupport.h.
bool SparseLU< _MatrixType, Backend >::succeeded | ( | void | ) | const [inline] |
Definition at line 129 of file SparseLU.h.
int SparseLU< _MatrixType, Backend >::m_flags [protected] |
Definition at line 133 of file SparseLU.h.
RealScalar SparseLU< _MatrixType, Backend >::m_precision [protected] |
Definition at line 132 of file SparseLU.h.
int SparseLU< _MatrixType, Backend >::m_status [mutable, protected] |
Definition at line 134 of file SparseLU.h.
bool SparseLU< _MatrixType, Backend >::m_succeeded [protected] |
Definition at line 135 of file SparseLU.h.