class HCL_EvalFunctionalProductDomain_d : public HCL_EvaluateFunctional_d

HCL_EvalFunctionalProductDomain_d is the evaluation object for the HCL_FunctionalProductDomain_d class

Inheritance:


Public Methods

virtual HCL_VectorSpace_d& Domain () const
Domain returns a reference to the domain of the underlying function
virtual HCL_ProductSpace_d& ProductDomain () const
ProductDomain returns a reference to the domain of the underlying function, as an instance of HCL_ProductSpace_d
virtual double Value () const
Value computes the value of the function
virtual void Gradient ( HCL_Vector_d & g ) const
Gradient computes the gradient of the function
virtual const HCL_Vector_d& GradientRef () const
GradientRef computes the gradient of the function and returns a reference to it
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 const HCL_Vector_d& PartialGradientRef ( int i ) const
PartialGradientRef returns a reference to the component of the gradient corresponding to the ith component of the independent variable
virtual HCL_LinearOp_d* Hessian () const
Hessian computes the Hessian of the function
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 const HCL_LinearOp_d& HessianRef () const
HessianRef computes the Hessian of the function and returns a reference to it
virtual const HCL_LinearOp_d& HessianBlockRef ( int i, int j ) const
HessianBlockRef returns a reference to the (i,j) block of the Hessian
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 derivative on dxi, giving dxj

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

HCL_EvalFunctionalProductDomain_d is the evaluation object for the HCL_FunctionalProductDomain_d class. For details, see the documentation for HCL_EvaluateFunctional_d and HCL_FunctionalProductDomain_d.
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 derivative on dxi, giving dxj. If this method is implemented, then the default HessianBlock method can be used; the block of the Hessian will then be an instance of HCL_FunctionalDefaultHessianBlock_d.

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

virtual HCL_ProductSpace_d& ProductDomain() const
ProductDomain returns a reference to the domain of the underlying function, as an instance of HCL_ProductSpace_d. This method is implemented using Domain, and need not be re-implemented in a derived class.

virtual double Value() const
Value computes the value of the function. This function must be implemented in each concrete derived class. It is recommended that any calculations that are required for both the value and derivatives be done in the constructor; Value should then complete the computation of the functional value.

virtual void Gradient( HCL_Vector_d & g ) const
Gradient computes the gradient of the function. This method is implemented in this (the base) class, using PartialGradient, and need not be re-implemented in a derived class.

virtual const HCL_Vector_d& GradientRef() const
GradientRef computes the gradient of the function and returns a reference to it. This causes the Evaluation object to manage the storage.

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. This is a virtual function and must be implemented in any derived class.

virtual const HCL_Vector_d& PartialGradientRef( int i ) const
PartialGradientRef returns a reference to the component of the gradient corresponding to the ith component of the independent variable. This relieves the calling program of the responsibility of managing the storage of the gradient. This method is implemented in this (the base) class, and need not be re-implemented in derived classes.

virtual HCL_LinearOp_d* Hessian() const
Hessian computes the Hessian of the function. This method is implemented in this (the base) class, using HessianBlock, and need not be re-implemented in a derived class.

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. The default implementation of this method creates an instance of HCL_FunctionalDefaultHessianBlock; this assumes that the protected method HessianBlockImage has been implemented. If it is desired to implement the blocks of the Hessian using other HCL or user-defined classes, then this method must be re-implemented in the derived class.

virtual const HCL_LinearOp_d& HessianRef() const
HessianRef computes the Hessian of the function and returns a reference to it. This causes the Evaluation object to manage the storage.

virtual const HCL_LinearOp_d& HessianBlockRef( int i, int j ) const
HessianBlockRef returns a reference to the (i,j) block of the Hessian. This method is implemented in this (the base) class, and need not be re-implemented in derived classes.

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.


Direct child classes:
HCL_EvalLSFcnlProductDomain_d
HCL_EvalLSFcnlGNProductDomain_d
HCL_FunctionalProductDomainDefaultEval_d

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