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
![]() | 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 |
![]() | Domain () const Domain returns a reference to the domain of the underlying functional |
![]() | Value () const Value computes the value of the functional at x. |
![]() | PartialGradient ( int i, HCL_Vector_d & g ) const PartialGradient computes the component of the gradient corresponding to the ith component of the independent variable |
![]() | HessianBlock ( int i, int j ) const HessianBlock creates the (i,j) block of the Hessian, as a linear operator with adjoint |
![]() | Write ( ostream & str ) const Debugging information |
![]() | 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 |
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.
HCL_FunctionalProductDomainDefaultEval_d( const HCL_FunctionalProductDomain_d * ff, const HCL_Vector_d & in )
virtual HCL_VectorSpace_d& Domain() const
virtual double Value() const
virtual void PartialGradient( int i, HCL_Vector_d & g ) const
virtual HCL_LinearOp_d* HessianBlock( int i, int j ) const
virtual ostream& Write( ostream & str ) const
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