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