RVL::ANLOperator< Scalar > Class Template Reference

ANLOperator creates a nonlinear op from an affine operator. More...

#include <op.hh>

Inheritance diagram for RVL::ANLOperator< Scalar >:

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

Public Member Functions

 ANLOperator (LinearOp< Scalar > const &LL, Vector< Scalar > const &dd)
 Usual constructor; just needs a pointer to the linear operator.
 ANLOperator (const ANLOperator< Scalar > &op)
 ~ANLOperator ()
virtual Operator< Scalar > * clone () const
Space< Scalar > & getDomain () const
 access to domain, range
Space< Scalar > & getRange () const
ostream & write (ostream &str) const

Protected Member Functions

void apply (const Vector< Scalar > &x, Vector< Scalar > &y) const
void applyDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const
void applyAdjDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const

Detailed Description

template<class Scalar>
class RVL::ANLOperator< Scalar >

ANLOperator creates a nonlinear op from an affine operator.

That is, it returns a nonlinear operator object (i.e. an instance of Operator) which has precisely the same mapping behaviour as a linear operator (i.e. an instance of LinearOp), plus a shift. This is useful for instance in creating formally nonlinear least squares functions using LeastSquaresFcnlGN (which can be fed to various nonlinear optimization algorithms), which are actually linear least squares functions.

Definition at line 2384 of file op.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::ANLOperator< Scalar >::ANLOperator ( LinearOp< Scalar > const &  LL,
Vector< Scalar > const &  dd 
)

Usual constructor; just needs a pointer to the linear operator.

Definition at line 2433 of file op.hh.

template<class Scalar>
RVL::ANLOperator< Scalar >::ANLOperator ( const ANLOperator< Scalar > &  op  ) 

Definition at line 2435 of file op.hh.

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

Definition at line 2436 of file op.hh.


Member Function Documentation

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

Implements RVL::Operator< Scalar >.

Definition at line 2394 of file op.hh.

References RVL::Vector< Scalar >::linComb().

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

Implements RVL::Operator< Scalar >.

Definition at line 2406 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2418 of file op.hh.

template<class Scalar>
virtual Operator<Scalar>* RVL::ANLOperator< Scalar >::clone (  )  const [virtual]

Implements RVL::Operator< Scalar >.

Definition at line 2439 of file op.hh.

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

access to domain, range

Implements RVL::Operator< Scalar >.

Definition at line 2444 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2445 of file op.hh.

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

Implements RVL::Writeable.

Definition at line 2447 of file op.hh.


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