class HCL_FunctionalProductDomainDefaultEval_d : public HCL_EvalFunctionalProductDomain_d

The purpose of the class HCL_FunctionalProductDomainDefaultEval is to relieve the implementor of a derived functional class from the necessity of also defining a derived evaluation class if there is no need to do so

Inheritance:


Public Methods

HCL_FunctionalProductDomainDefaultEval_d ( const HCL_FunctionalProductDomain_d * ff, const HCL_Vector_d & in )
Usual constructor; requires a pointer to a functional and a reference to the input vector
virtual HCL_VectorSpace_d& Domain () const
Domain returns a reference to the domain of the underlying functional
virtual double Value () const
Value computes the value of the functional at x.
virtual void PartialGradient ( int i, HCL_Vector_d & g ) const
PartialGradient computes the component of the gradient corresponding to the ith component of the independent variable
virtual HCL_LinearOp_d* HessianBlock ( int i, int j ) const
HessianBlock creates the (i,j) block of the Hessian, as a linear operator with adjoint
virtual ostream& Write ( ostream & str ) const
Debugging information

Protected Methods

virtual void HessianBlockImage ( int i, int j, const HCL_Vector_d & dxj, HCL_Vector_d & dxi ) const
HessianBlockImage computes the image of the (i,j) block of the Hessian on dxj, yielding dxi

Inherited from HCL_EvalFunctionalProductDomain_d:

Public Methods

virtual HCL_ProductSpace_d& ProductDomain() const
virtual void Gradient( HCL_Vector_d & g ) const
virtual const HCL_Vector_d& GradientRef() const
virtual const HCL_Vector_d& PartialGradientRef( int i ) const
virtual HCL_LinearOp_d* Hessian() const
virtual const HCL_LinearOp_d& HessianRef() const
virtual const HCL_LinearOp_d& HessianBlockRef( int i, int j ) const

Inherited from HCL_EvaluateFunctional_d:

Public Methods

virtual double ValueRef() const

Protected Methods

virtual void HessianImage( const HCL_Vector_d & dx, HCL_Vector_d & dy ) const
virtual void HessianInvImage( const HCL_Vector_d & dy, HCL_Vector_d & dx ) const

Inherited from HCL_Base:

Public Methods

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

Documentation

The purpose of the class HCL_FunctionalProductDomainDefaultEval is to relieve the implementor of a derived functional class from the necessity of also defining a derived evaluation class if there is no need to do so. The purpose of the evaluation class is to represent the triple . If the implementor of the derived functional class has overridden the protected methods Value1, PartialGradient1, and either HessianBlock1 or HessianBlockImage, then this default evaluation class can call those methods to compute the value, gradient, or Hessian of the functional. To make this possible, the constructor of HCL_FunctionalProductDomainDefaultEval saves a copy of x and a pointer to the functional class.

See the documentation for HCL_EvaluateFunctional for more information about evaluation objects for functionals.

virtual void HessianBlockImage( int i, int j, const HCL_Vector_d & dxj, HCL_Vector_d & dxi ) const
HessianBlockImage computes the image of the (i,j) block of the Hessian on dxj, yielding dxi. This method calls the corresponding method from the underlying functional class.

HCL_FunctionalProductDomainDefaultEval_d( const HCL_FunctionalProductDomain_d * ff, const HCL_Vector_d & in )
Usual constructor; requires a pointer to a functional and a reference to the input vector

virtual HCL_VectorSpace_d& Domain() const
Domain returns a reference to the domain of the underlying functional

virtual double Value() const
Value computes the value of the functional at x.

virtual void PartialGradient( int i, HCL_Vector_d & g ) const
PartialGradient computes the component of the gradient corresponding to the ith component of the independent variable

virtual HCL_LinearOp_d* HessianBlock( int i, int j ) const
HessianBlock creates the (i,j) block of the Hessian, as a linear operator with adjoint. This method checks to see if the functional class has implemented HessianBlock1 to compute this block; otherwise, an instance of HCL_FunctionalDefaultHessianBlock_d is created, which assumes that HessianBlockImage has been implemented in the functional class.

virtual ostream& Write( ostream & str ) const
Debugging information. Write must be implemented in derived classes, and should print a description of the object that will be useful for debugging.


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