OSVR-Core
Public Types | Public Member Functions | Protected Attributes | List of all members
Eigen::DiagonalPreconditioner< _Scalar > Class Template Reference

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

#include <BasicPreconditioners.h>

Public Types

typedef Matrix< Scalar, Dynamic, DynamicMatrixType
 

Public Member Functions

template<typename MatType >
 DiagonalPreconditioner (const MatType &mat)
 
Index rows () const
 
Index cols () const
 
template<typename MatType >
DiagonalPreconditioneranalyzePattern (const MatType &)
 
template<typename MatType >
DiagonalPreconditionerfactorize (const MatType &mat)
 
template<typename MatType >
DiagonalPreconditionercompute (const MatType &mat)
 
template<typename Rhs , typename Dest >
void _solve (const Rhs &b, Dest &x) 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.

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