RVL::LNLOperator< Scalar > Class Template Reference

LNLOperator creates a nonlinear op from a linear operator. More...

#include <op.hh>

Inheritance diagram for RVL::LNLOperator< Scalar >:

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

Public Member Functions

 LNLOperator (LinearOp< Scalar > const &LL)
 Usual constructor; just needs a pointer to the linear operator.
 LNLOperator (const LNLOperator< Scalar > &op)
 ~LNLOperator ()
virtual Operator< Scalar > * clone () const
const Space< Scalar > & getDomain () const
 access to domain, range
const 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::LNLOperator< Scalar >

LNLOperator creates a nonlinear op from a linear 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). 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 2306 of file op.hh.


Constructor & Destructor Documentation

template<class Scalar>
RVL::LNLOperator< Scalar >::LNLOperator ( LinearOp< Scalar > const &  LL  ) 

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

Definition at line 2353 of file op.hh.

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

Definition at line 2354 of file op.hh.

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

Definition at line 2355 of file op.hh.


Member Function Documentation

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

Implements RVL::Operator< Scalar >.

Definition at line 2315 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2326 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2338 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2358 of file op.hh.

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

access to domain, range

Implements RVL::Operator< Scalar >.

Definition at line 2363 of file op.hh.

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

Implements RVL::Operator< Scalar >.

Definition at line 2364 of file op.hh.

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

Implements RVL::Writeable.

Definition at line 2366 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