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

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

#include <BasicPreconditioners.h>

Inheritance diagram for Eigen::DiagonalPreconditioner< _Scalar >:
Inheritance graph
[legend]

Public Types

enum  { ColsAtCompileTime = Dynamic, MaxColsAtCompileTime = Dynamic }
 
typedef Vector::StorageIndex StorageIndex
 

Public Member Functions

template<typename Rhs , typename Dest >
void _solve_impl (const Rhs &b, Dest &x) const
 
template<typename MatType >
DiagonalPreconditioneranalyzePattern (const MatType &)
 
EIGEN_CONSTEXPR Index cols () const EIGEN_NOEXCEPT
 
template<typename MatType >
DiagonalPreconditionercompute (const MatType &mat)
 
 DiagonalPreconditioner ()
 
template<typename MatType >
 DiagonalPreconditioner (const MatType &mat)
 
template<typename MatType >
DiagonalPreconditionerfactorize (const MatType &mat)
 
ComputationInfo info ()
 
EIGEN_CONSTEXPR Index rows () const EIGEN_NOEXCEPT
 
template<typename Rhs >
const Solve< DiagonalPreconditioner, Rhs > solve (const MatrixBase< Rhs > &b) const
 

Protected Attributes

Vector m_invdiag
 
bool m_isInitialized
 

Private Types

typedef _Scalar Scalar
 
typedef Matrix< Scalar, Dynamic, 1 > Vector
 

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.
See also
class LeastSquareDiagonalPreconditioner, class ConjugateGradient

Definition at line 36 of file BasicPreconditioners.h.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
typedef _Scalar Eigen::DiagonalPreconditioner< _Scalar >::Scalar
private

Definition at line 38 of file BasicPreconditioners.h.

◆ StorageIndex

template<typename _Scalar >
typedef Vector::StorageIndex Eigen::DiagonalPreconditioner< _Scalar >::StorageIndex

Definition at line 41 of file BasicPreconditioners.h.

◆ Vector

template<typename _Scalar >
typedef Matrix<Scalar,Dynamic,1> Eigen::DiagonalPreconditioner< _Scalar >::Vector
private

Definition at line 39 of file BasicPreconditioners.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename _Scalar >
anonymous enum
Enumerator
ColsAtCompileTime 
MaxColsAtCompileTime 

Definition at line 42 of file BasicPreconditioners.h.

Constructor & Destructor Documentation

◆ DiagonalPreconditioner() [1/2]

template<typename _Scalar >
Eigen::DiagonalPreconditioner< _Scalar >::DiagonalPreconditioner ( )
inline

Definition at line 47 of file BasicPreconditioners.h.

◆ DiagonalPreconditioner() [2/2]

template<typename _Scalar >
template<typename MatType >
Eigen::DiagonalPreconditioner< _Scalar >::DiagonalPreconditioner ( const MatType &  mat)
inlineexplicit

Definition at line 50 of file BasicPreconditioners.h.

Member Function Documentation

◆ _solve_impl()

template<typename _Scalar >
template<typename Rhs , typename Dest >
void Eigen::DiagonalPreconditioner< _Scalar >::_solve_impl ( const Rhs &  b,
Dest &  x 
) const
inline

Definition at line 89 of file BasicPreconditioners.h.

◆ analyzePattern()

template<typename _Scalar >
template<typename MatType >
DiagonalPreconditioner& Eigen::DiagonalPreconditioner< _Scalar >::analyzePattern ( const MatType &  )
inline

Definition at line 59 of file BasicPreconditioners.h.

◆ cols()

template<typename _Scalar >
EIGEN_CONSTEXPR Index Eigen::DiagonalPreconditioner< _Scalar >::cols ( void  ) const
inline

Definition at line 56 of file BasicPreconditioners.h.

◆ compute()

template<typename _Scalar >
template<typename MatType >
DiagonalPreconditioner& Eigen::DiagonalPreconditioner< _Scalar >::compute ( const MatType &  mat)
inline

Definition at line 82 of file BasicPreconditioners.h.

◆ factorize()

template<typename _Scalar >
template<typename MatType >
DiagonalPreconditioner& Eigen::DiagonalPreconditioner< _Scalar >::factorize ( const MatType &  mat)
inline

Definition at line 65 of file BasicPreconditioners.h.

◆ info()

template<typename _Scalar >
ComputationInfo Eigen::DiagonalPreconditioner< _Scalar >::info ( )
inline

Definition at line 103 of file BasicPreconditioners.h.

◆ rows()

template<typename _Scalar >
EIGEN_CONSTEXPR Index Eigen::DiagonalPreconditioner< _Scalar >::rows ( void  ) const
inline

Definition at line 55 of file BasicPreconditioners.h.

◆ solve()

template<typename _Scalar >
template<typename Rhs >
const Solve<DiagonalPreconditioner, Rhs> Eigen::DiagonalPreconditioner< _Scalar >::solve ( const MatrixBase< Rhs > &  b) const
inline

Definition at line 95 of file BasicPreconditioners.h.

Member Data Documentation

◆ m_invdiag

template<typename _Scalar >
Vector Eigen::DiagonalPreconditioner< _Scalar >::m_invdiag
protected

Definition at line 106 of file BasicPreconditioners.h.

◆ m_isInitialized

template<typename _Scalar >
bool Eigen::DiagonalPreconditioner< _Scalar >::m_isInitialized
protected

Definition at line 107 of file BasicPreconditioners.h.


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


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:41:37