ANLOperator creates a nonlinear op from an affine operator. More...
#include <op.hh>
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 |
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.
RVL::ANLOperator< Scalar >::ANLOperator | ( | LinearOp< Scalar > const & | LL, | |
Vector< Scalar > const & | dd | |||
) |
RVL::ANLOperator< Scalar >::ANLOperator | ( | const ANLOperator< Scalar > & | op | ) |
RVL::ANLOperator< Scalar >::~ANLOperator | ( | ) |
void RVL::ANLOperator< Scalar >::apply | ( | const Vector< Scalar > & | x, | |
Vector< Scalar > & | y | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
void RVL::ANLOperator< Scalar >::applyDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dx, | |||
Vector< Scalar > & | dy | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
void RVL::ANLOperator< Scalar >::applyAdjDeriv | ( | const Vector< Scalar > & | x, | |
const Vector< Scalar > & | dy, | |||
Vector< Scalar > & | dx | |||
) | const [protected, virtual] |
Implements RVL::Operator< Scalar >.
virtual Operator<Scalar>* RVL::ANLOperator< Scalar >::clone | ( | ) | const [virtual] |
Implements RVL::Operator< Scalar >.
Space<Scalar>& RVL::ANLOperator< Scalar >::getDomain | ( | ) | const [virtual] |
Space<Scalar>& RVL::ANLOperator< Scalar >::getRange | ( | ) | const [virtual] |
Implements RVL::Operator< Scalar >.
ostream& RVL::ANLOperator< Scalar >::write | ( | ostream & | str | ) | const [virtual] |
Implements RVL::Writeable.