RVL::FcnlOpComp< Scalar > Class Template Reference

This handle class creates the composite of a functional and an operator $f(G(x))$, using the protected services of Operator and Functional. More...

#include <functional.hh>

Inheritance diagram for RVL::FcnlOpComp< Scalar >:

RVL::Functional< Scalar > RVL::Writeable List of all members.

Public Member Functions

 FcnlOpComp (const Functional< Scalar > &fref, const Operator< Scalar > &opref)
 FcnlOpComp (const FcnlOpComp< Scalar > &c)
 ~FcnlOpComp ()
const Space< Scalar > & getDomain () const
 access to domain
virtual Scalar getMaxStep (const Vector< Scalar > &x, const Vector< Scalar > &dx) const
OperatorEvaluation< Scalar
> const & 
getOpEval () const
 provides access to any available attributes of latest operator evaluation
FunctionalEvaluation< Scalar
> const & 
getFcnlEval () const
 provides access to any available attributes of latest operator evaluation
ostream & write (ostream &str) const

Protected Member Functions

void apply (const Vector< Scalar > &x, Scalar &val) const
virtual void applyGradient (const Vector< Scalar > &x, Vector< Scalar > &g) const
 $g = grad F(x)$
virtual void applyHessian (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const
virtual Functional< Scalar > * clone () const
 virtual copy constructor: make a complete new copy including internal workspace.

Detailed Description

template<class Scalar>
class RVL::FcnlOpComp< Scalar >

This handle class creates the composite of a functional and an operator $f(G(x))$, using the protected services of Operator and Functional.

While it can access the protected Functional methods through inheritance, it must be a friend of the base Operator class.

The basic methods remain virtual so that further attributes can be added in subclasses.

Note that the value is available once the apply method is called for the first time, with additional computations. However the intermediate vector holding the output of the operator factor is not, to avoid potential heavyweight storage.

Definition at line 1743 of file functional.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::FcnlOpComp< Scalar >::FcnlOpComp ( const Functional< Scalar > &  fref,
const Operator< Scalar > &  opref 
)

Definition at line 1826 of file functional.hh.

template<class Scalar>
RVL::FcnlOpComp< Scalar >::FcnlOpComp ( const FcnlOpComp< Scalar > &  c  ) 

Definition at line 1831 of file functional.hh.

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

Definition at line 1844 of file functional.hh.


Member Function Documentation

template<class Scalar>
void RVL::FcnlOpComp< Scalar >::apply ( const Vector< Scalar > &  x,
Scalar &  val 
) const [protected, virtual]

Implements RVL::Functional< Scalar >.

Definition at line 1754 of file functional.hh.

template<class Scalar>
virtual void RVL::FcnlOpComp< Scalar >::applyGradient ( const Vector< Scalar > &  x,
Vector< Scalar > &  g 
) const [protected, virtual]

$g = grad F(x)$

Implements RVL::Functional< Scalar >.

Definition at line 1773 of file functional.hh.

template<class Scalar>
virtual void RVL::FcnlOpComp< Scalar >::applyHessian ( const Vector< Scalar > &  x,
const Vector< Scalar > &  dx,
Vector< Scalar > &  dy 
) const [protected, virtual]

Implements RVL::Functional< Scalar >.

Definition at line 1791 of file functional.hh.

References RVL::OperatorEvaluation< Scalar >::getRange().

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

virtual copy constructor: make a complete new copy including internal workspace.

Usually implemented with operator new and copy constructor of concrete child class.

Implements RVL::Functional< Scalar >.

Definition at line 1819 of file functional.hh.

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

access to domain

Implements RVL::Functional< Scalar >.

Definition at line 1850 of file functional.hh.

template<class Scalar>
virtual Scalar RVL::FcnlOpComp< Scalar >::getMaxStep ( const Vector< Scalar > &  x,
const Vector< Scalar > &  dx 
) const [virtual]

Reimplemented from RVL::Functional< Scalar >.

Definition at line 1860 of file functional.hh.

template<class Scalar>
OperatorEvaluation<Scalar> const& RVL::FcnlOpComp< Scalar >::getOpEval (  )  const

provides access to any available attributes of latest operator evaluation

Definition at line 1896 of file functional.hh.

template<class Scalar>
FunctionalEvaluation<Scalar> const& RVL::FcnlOpComp< Scalar >::getFcnlEval (  )  const

provides access to any available attributes of latest operator evaluation

Definition at line 1907 of file functional.hh.

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

Implements RVL::Writeable.

Definition at line 1916 of file functional.hh.


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