A preconditioner based on the digonal entries. More...
#include <BasicPreconditioners.h>
Public Types | |
typedef Matrix< Scalar, Dynamic, Dynamic > | MatrixType |
Public Member Functions | |
template<typename Rhs , typename Dest > | |
void | _solve (const Rhs &b, Dest &x) const |
template<typename MatrixType > | |
DiagonalPreconditioner & | analyzePattern (const MatrixType &) |
Index | cols () const |
template<typename MatrixType > | |
DiagonalPreconditioner & | compute (const MatrixType &mat) |
DiagonalPreconditioner () | |
template<typename MatrixType > | |
DiagonalPreconditioner (const MatrixType &mat) | |
template<typename MatrixType > | |
DiagonalPreconditioner & | factorize (const MatrixType &mat) |
Index | rows () const |
template<typename Rhs > | |
const internal::solve_retval < DiagonalPreconditioner, Rhs > | solve (const MatrixBase< Rhs > &b) const |
Protected Attributes | |
Vector | m_invdiag |
bool | m_isInitialized |
A preconditioner based on the digonal entries.
This class allows to approximately solve for A.x = b problems assuming A is a diagonal matrix. In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
A.diagonal().asDiagonal() . x = b
_Scalar | the type of the scalar. |
This preconditioner is suitable for both selfadjoint and general problems. The diagonal entries are pre-inverted and stored into a dense vector.
typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType |
DiagonalPreconditioner | ( | ) | [inline] |
DiagonalPreconditioner | ( | const MatrixType & | mat | ) | [inline] |
References DiagonalPreconditioner< _Scalar >::compute().
void _solve | ( | const Rhs & | b, |
Dest & | x | ||
) | const [inline] |
References DiagonalPreconditioner< _Scalar >::m_invdiag.
DiagonalPreconditioner& analyzePattern | ( | const MatrixType & | ) | [inline] |
Index cols | ( | void | ) | const [inline] |
References DiagonalPreconditioner< _Scalar >::m_invdiag.
DiagonalPreconditioner& compute | ( | const MatrixType & | mat | ) | [inline] |
References DiagonalPreconditioner< _Scalar >::factorize().
Referenced by DiagonalPreconditioner< _Scalar >::DiagonalPreconditioner().
DiagonalPreconditioner& factorize | ( | const MatrixType & | mat | ) | [inline] |
Index rows | ( | void | ) | const [inline] |
References DiagonalPreconditioner< _Scalar >::m_invdiag.
const internal::solve_retval<DiagonalPreconditioner, Rhs> solve | ( | const MatrixBase< Rhs > & | b | ) | const [inline] |
bool m_isInitialized [protected] |