ROL
ROL::DiagonalOperator< Real > Class Template Reference

Provides the interface to apply a diagonal operator which acts like elementwise multiplication when apply() is used and elementwise division when applyInverse() is used. More...

#include <ROL_DiagonalOperator.hpp>

Inheritance diagram for ROL::DiagonalOperator< Real >:

Public Member Functions

 DiagonalOperator (const Vector< Real > &diag)
void update (const Vector< Real > &x, bool flag=true, int iter=-1)
void apply (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
void applyInverse (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
Public Member Functions inherited from ROL::ROL::LinearOperator< Real >
virtual ~LinearOperator ()
virtual void update (const Vector< Real > &x, bool flag=true, int iter=-1)
 Update linear operator.
virtual void apply (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const =0
 Apply linear operator.
virtual void applyInverse (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
 Apply inverse of linear operator.
virtual void applyAdjoint (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
 Apply adjoint of linear operator.
virtual void applyAdjointInverse (Vector< Real > &Hv, const Vector< Real > &v, Real &tol) const
 Apply adjoint of the inverse linear operator.

Private Attributes

ROL::Ptr< Vector< Real > > diag_
const Elementwise::Multiply< Real > mult_
const Elementwise::Divide< Real > div_

Detailed Description

template<class Real>
class ROL::DiagonalOperator< Real >

Provides the interface to apply a diagonal operator which acts like elementwise multiplication when apply() is used and elementwise division when applyInverse() is used.

Definition at line 28 of file ROL_DiagonalOperator.hpp.

Constructor & Destructor Documentation

◆ DiagonalOperator()

template<class Real>
ROL::DiagonalOperator< Real >::DiagonalOperator ( const Vector< Real > & diag)
inline

Definition at line 39 of file ROL_DiagonalOperator.hpp.

References diag_.

Member Function Documentation

◆ update()

template<class Real>
void ROL::DiagonalOperator< Real >::update ( const Vector< Real > & x,
bool flag = true,
int iter = -1 )
inline

Definition at line 43 of file ROL_DiagonalOperator.hpp.

References diag_.

◆ apply()

template<class Real>
void ROL::DiagonalOperator< Real >::apply ( Vector< Real > & Hv,
const Vector< Real > & v,
Real & tol ) const
inline

◆ applyInverse()

template<class Real>
void ROL::DiagonalOperator< Real >::applyInverse ( Vector< Real > & Hv,
const Vector< Real > & v,
Real & tol ) const
inline

Member Data Documentation

◆ diag_

template<class Real>
ROL::Ptr<Vector<Real> > ROL::DiagonalOperator< Real >::diag_
private

Definition at line 32 of file ROL_DiagonalOperator.hpp.

Referenced by apply(), applyInverse(), DiagonalOperator(), and update().

◆ mult_

template<class Real>
const Elementwise::Multiply<Real> ROL::DiagonalOperator< Real >::mult_
private

Definition at line 34 of file ROL_DiagonalOperator.hpp.

Referenced by apply().

◆ div_

template<class Real>
const Elementwise::Divide<Real> ROL::DiagonalOperator< Real >::div_
private

Definition at line 35 of file ROL_DiagonalOperator.hpp.

Referenced by applyInverse().


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