RVL::DerivEvaluation< Scalar > Class Template Reference

Implements the derivative by delegating the implementation of the apply methods to the Operator class, by way of the Evaluation. More...

#include <op.hh>

Inheritance diagram for RVL::DerivEvaluation< Scalar >:

RVL::LinearOp< Scalar > RVL::Operator< Scalar > RVL::Writeable RVL::InvertibleDerivEvaluation< Scalar > List of all members.

Public Member Functions

 ~DerivEvaluation ()
const Space< Scalar > & getDomain () const
 access to domain, delegated to Evaluation datum
const Space< Scalar > & getRange () const
 access to range, delegated to Evaluation datum
ostream & write (ostream &str) const

Protected Member Functions

 DerivEvaluation (const DerivEvaluation< Scalar > &d)
 DerivEvaluation (OperatorEvaluation< Scalar > &_fx)
 Records reference to Evaluation object.
LinearOp< Scalar > * clone () const
Operator< Scalar > & getOp () const
 supplied to enable child classes to access Operator data member directly
void apply (const Vector< Scalar > &y, Vector< Scalar > &z) const
 image, application, MatVec product, whatever, via protected method of Evaluation datum
void applyAdj (const Vector< Scalar > &y, Vector< Scalar > &z) const
 image of adjoint operator, via protected method of Evaluation datum

Protected Attributes

OperatorEvaluation< Scalar > & fx

Friends

class OperatorEvaluation< Scalar >
class Operator< Scalar >

Detailed Description

template<class Scalar>
class RVL::DerivEvaluation< Scalar >

Implements the derivative by delegating the implementation of the apply methods to the Operator class, by way of the Evaluation.

As no access to internal state (consisting only of an Evaluation reference) is provided, instances are effectively immutable. Only manufactured by OperatorEvaluation class - the nontrivial constructor is protected (others are private and not implemented) and OperatorEvaluation is the only friend class.

Definition at line 1958 of file op.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::DerivEvaluation< Scalar >::DerivEvaluation ( const DerivEvaluation< Scalar > &  d  )  [protected]

Definition at line 1972 of file op.hh.

template<class Scalar>
RVL::DerivEvaluation< Scalar >::DerivEvaluation ( OperatorEvaluation< Scalar > &  _fx  )  [protected]

Records reference to Evaluation object.

Definition at line 1976 of file op.hh.

template<class Scalar>
RVL::DerivEvaluation< Scalar >::~DerivEvaluation (  ) 

Definition at line 2014 of file op.hh.


Member Function Documentation

template<class Scalar>
LinearOp<Scalar>* RVL::DerivEvaluation< Scalar >::clone (  )  const [protected, virtual]

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::InvertibleDerivEvaluation< Scalar >.

Definition at line 1978 of file op.hh.

template<class Scalar>
Operator<Scalar>& RVL::DerivEvaluation< Scalar >::getOp (  )  const [protected]

supplied to enable child classes to access Operator data member directly

Definition at line 1984 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.

Referenced by RVL::InvertibleDerivEvaluation< Scalar >::applyInv(), and RVL::InvertibleDerivEvaluation< Scalar >::applyInvAdj().

template<class Scalar>
void RVL::DerivEvaluation< Scalar >::apply ( const Vector< Scalar > &  y,
Vector< Scalar > &  z 
) const [protected, virtual]

image, application, MatVec product, whatever, via protected method of Evaluation datum

Implements RVL::Operator< Scalar >.

Definition at line 1988 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.

template<class Scalar>
void RVL::DerivEvaluation< Scalar >::applyAdj ( const Vector< Scalar > &  y,
Vector< Scalar > &  z 
) const [protected, virtual]

image of adjoint operator, via protected method of Evaluation datum

Implements RVL::LinearOp< Scalar >.

Definition at line 2001 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.

template<class Scalar>
const Space<Scalar>& RVL::DerivEvaluation< Scalar >::getDomain (  )  const [virtual]

access to domain, delegated to Evaluation datum

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::InvertibleDerivEvaluation< Scalar >.

Definition at line 2017 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.

template<class Scalar>
const Space<Scalar>& RVL::DerivEvaluation< Scalar >::getRange (  )  const [virtual]

access to range, delegated to Evaluation datum

Implements RVL::Operator< Scalar >.

Reimplemented in RVL::InvertibleDerivEvaluation< Scalar >.

Definition at line 2019 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.

template<class Scalar>
ostream& RVL::DerivEvaluation< Scalar >::write ( ostream &  str  )  const [virtual]

Implements RVL::Writeable.

Reimplemented in RVL::InvertibleDerivEvaluation< Scalar >.

Definition at line 2021 of file op.hh.

References RVL::DerivEvaluation< Scalar >::fx.


Friends And Related Function Documentation

template<class Scalar>
friend class OperatorEvaluation< Scalar > [friend]

Reimplemented from RVL::Operator< Scalar >.

Definition at line 1960 of file op.hh.

template<class Scalar>
friend class Operator< Scalar > [friend]

Definition at line 1961 of file op.hh.


Member Data Documentation

template<class Scalar>
OperatorEvaluation<Scalar>& RVL::DerivEvaluation< Scalar >::fx [protected]

Definition at line 1970 of file op.hh.

Referenced by RVL::DerivEvaluation< Scalar >::apply(), RVL::DerivEvaluation< Scalar >::applyAdj(), RVL::InvertibleDerivEvaluation< Scalar >::getDomain(), RVL::DerivEvaluation< Scalar >::getDomain(), RVL::DerivEvaluation< Scalar >::getOp(), RVL::InvertibleDerivEvaluation< Scalar >::getRange(), RVL::DerivEvaluation< Scalar >::getRange(), RVL::InvertibleDerivEvaluation< Scalar >::write(), and RVL::DerivEvaluation< Scalar >::write().


The documentation for this class was generated from the following file:
Generated on 5 Jan 2017 for RVL by  doxygen 1.4.7