class HCL_LNLOp_d : public HCL_Op_d

HCL_LNLOp_d creates a nonlinear op from a linear one

Inheritance:


Public Methods

HCL_LNLOp_d ( const HCL_LinearOp_d * LL )
Usual constructor; just needs a pointer to the linear operator.
virtual HCL_VectorSpace_d& Domain () const
Domain space access
virtual HCL_VectorSpace_d& Range () const
Range space access
virtual HCL_EvaluateOp_d* Evaluate ( const HCL_Vector_d & x ) const
Evaluate creates an evaluation object which knows how to compute the image, first derivative, and second derivative, along with all relevant adjoints, at a point
virtual ostream& Write ( ostream & str ) const
Debugging information.

Inherited from HCL_Op_d:

Public Methods

virtual double MaxStep( const HCL_Vector_d & x, const HCL_Vector_d &dir) const
virtual void Image( const HCL_Vector_d & x, HCL_Vector_d & y ) const
virtual void ImageAdd( const HCL_Vector_d & x, HCL_Vector_d & y, double a=1.0, double b=1.0 ) const
virtual void ImageAdd( const HCL_Vector_d & x, const HCL_Vector_d & z, HCL_Vector_d & y, double a=1.0, double b=1.0 ) const
virtual HCL_LinearOp_d* Deriv( const HCL_Vector_d & x ) const
virtual HCL_BiLinearOp_d* SecondDeriv( const HCL_Vector_d & x ) const
int CheckDeriv( const HCL_Vector_d &, const HCL_Vector_d &, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 ) const
int CheckDerivAdj( const HCL_Vector_d &, const HCL_Vector_d &, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 ) const
int CheckSecondDeriv( const HCL_Vector_d &, const HCL_Vector_d &, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 ) const
int CheckSecondDerivAdj( const HCL_Vector_d &, const HCL_Vector_d &, ostream & str, int n=10, double hmin=0.1, double hmax=1.0 ) const

Protected Methods

virtual void DerivImage( const HCL_Vector_d & x, const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
virtual void DerivAdjImage( const HCL_Vector_d & x, const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
virtual void DerivInvImage( const HCL_Vector_d & x, const HCL_Vector_d & dy, HCL_Vector_d & dx ) const
virtual void DerivInvAdjImage( const HCL_Vector_d & x, const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
virtual void Image1( const HCL_Vector_d & x, HCL_Vector_d & y ) const
virtual HCL_LinearOp_d* Deriv1( const HCL_Vector_d & x ) const
virtual void SecondDerivImage( const HCL_Vector_d & x, const HCL_Vector_d & dx1, const HCL_Vector_d & dx2, HCL_Vector_d & dy ) const
virtual void SecondDerivPartialAdjImage(const HCL_Vector_d & x, const HCL_Vector_d & dx1, const HCL_Vector_d & dy, HCL_Vector_d & dx2 ) const
virtual HCL_BiLinearOp_d* SecondDeriv1( const HCL_Vector_d & x ) const

Inherited from HCL_Base:

Public Methods

void IncCount() const
void DecCount() const
int Count() const

Documentation

HCL_LNLOp_d creates a nonlinear op from a linear one. That is, it returns a nonlinear operator object (i.e. an instance of HCL_Op_d) which has precisely the same mapping behaviour as a linear operator (i.e. an instance of HCL_LinearOp_d). This is useful for instance in creating formally nonlinear least squares functions using HCL_LS_d (which can be fed to various nonlinear optimization algorithms),which are actually linear least squares functions.
HCL_LNLOp_d( const HCL_LinearOp_d * LL )
Usual constructor; just needs a pointer to the linear operator.

virtual HCL_VectorSpace_d& Domain() const
Domain space access. Returns a reference to an HCL_VectorSpace_d.

virtual HCL_VectorSpace_d& Range() const
Range space access. Returns a reference to an HCL_VectorSpace_d.

virtual HCL_EvaluateOp_d* Evaluate( const HCL_Vector_d & x ) const
Evaluate creates an evaluation object which knows how to compute the image, first derivative, and second derivative, along with all relevant adjoints, at a point. The purpose of the evaluation object is to accommodate the common situation in which the computation of the image and derivatives involve some common intermediate calculations.

virtual ostream& Write( ostream & str ) const
Debugging information.


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de