Public Types | Public Member Functions | Protected Attributes
DiagonalPreconditioner< _Scalar > Class Template Reference

A preconditioner based on the digonal entries. More...

#include <BasicPreconditioners.h>

List of all members.

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 >
DiagonalPreconditioneranalyzePattern (const MatrixType &)
Index cols () const
template<typename MatrixType >
DiagonalPreconditionercompute (const MatrixType &mat)
 DiagonalPreconditioner ()
template<typename MatrixType >
 DiagonalPreconditioner (const MatrixType &mat)
template<typename MatrixType >
DiagonalPreconditionerfactorize (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

Detailed Description

template<typename _Scalar>
class Eigen::DiagonalPreconditioner< _Scalar >

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
Template Parameters:
_Scalarthe 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.

Note:
A variant that has yet to be implemented would attempt to preserve the norm of each column.

Member Typedef Documentation

typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType

Constructor & Destructor Documentation

DiagonalPreconditioner ( ) [inline]
DiagonalPreconditioner ( const MatrixType mat) [inline]

Member Function Documentation

void _solve ( const Rhs &  b,
Dest &  x 
) const [inline]
Index cols ( void  ) const [inline]
DiagonalPreconditioner& compute ( const MatrixType mat) [inline]
DiagonalPreconditioner& factorize ( const MatrixType mat) [inline]
Index rows ( void  ) const [inline]
const internal::solve_retval<DiagonalPreconditioner, Rhs> solve ( const MatrixBase< Rhs > &  b) const [inline]

Member Data Documentation

Vector m_invdiag [protected]
bool m_isInitialized [protected]

The documentation for this class was generated from the following file: