class HCL_OpDefaultSecondDeriv_d : public HCL_BiLinearOp_d

HCL_OpDefaultSecondDeriv_d is a bilinear operator class implementing the second derivative of a nonlinear operator

Inheritance:


Public Methods

HCL_OpDefaultSecondDeriv_d ( const HCL_EvaluateOp_d * ev )
Usual constructor; just needs an operator's evaluation object
virtual HCL_VectorSpace_d& Domain1 () const
Access to the domain of the first argument
virtual HCL_VectorSpace_d& Domain2 () const
Access to the domain of the second argument
virtual HCL_VectorSpace_d& Range () const
Access to the range
virtual void Image ( const HCL_Vector_d & x, const HCL_Vector_d & y, HCL_Vector_d & z ) const
Image computes the action of the operator on the pair (x,y), giving z.
virtual ostream& Write ( ostream & str ) const
Write prints a description of the object

Protected Methods

virtual void PartialAdjImage ( int i, const HCL_Vector_d & xy, const HCL_Vector_d & z, HCL_Vector_d & yx ) const
The method PartialAdjImage implements the mappings () and ()

Inherited from HCL_BiLinearOp_d:

Public Methods

virtual HCL_LinearOp_d* Op1( const HCL_Vector_d & x ) const
virtual HCL_LinearOp_d* Op2( const HCL_Vector_d & y ) const
virtual HCL_LinearOp_d* Op3( const HCL_Vector_d & z ) const
int CheckAdj( int Display = 1, double tol = 1000 )

Inherited from HCL_Base:

Public Methods

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

Documentation

HCL_OpDefaultSecondDeriv_d is a bilinear operator class implementing the second derivative of a nonlinear operator. It exists to relieve the implementor of an operator class from the necessity of creating a distinct class to represent the derivative if there is no (efficiency) advantage gained by creating such a class. In order to use this default derivative class, the implementor of the operator class must implement the protected virtual functions SecondDerivImage, SecondDerivPartialAdjImage.

The various mechanisms for implementing operator classes, including the use of this default class, are explained in detail, with concrete examples, in the report

"Implementing operators in HCL", Technical Report 99-22, Department of Computational and Applied Mathematics, Rice University, Houston, TX 77251-1892.

downloadable from the HCL home page.

This class is concrete: all of its methods are implemented, and are not intended to be overridden.

virtual void PartialAdjImage( int i, const HCL_Vector_d & xy, const HCL_Vector_d & z, HCL_Vector_d & yx ) const
The method PartialAdjImage implements the mappings () and (). It is implemented to enable the use of the default linear operator class HCL_RestrictedBiLinearOp_d to represent the operators Op1, Op2, Op3.

HCL_OpDefaultSecondDeriv_d( const HCL_EvaluateOp_d * ev )
Usual constructor; just needs an operator's evaluation object

virtual HCL_VectorSpace_d& Domain1() const
Access to the domain of the first argument. Returns a reference to an HCL_VectorSpace_d.

virtual HCL_VectorSpace_d& Domain2() const
Access to the domain of the second argument. Returns a reference to an HCL_VectorSpace_d.

virtual HCL_VectorSpace_d& Range() const
Access to the range. Returns a reference to a HCL_VectorSpace_d.

virtual void Image( const HCL_Vector_d & x, const HCL_Vector_d & y, HCL_Vector_d & z ) const
Image computes the action of the operator on the pair (x,y), giving z.

virtual ostream& Write( ostream & str ) const
Write prints a description of the object


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