Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

sc::Function Class Reference

The Function class is an abstract base class that, given a set of coordinates, will compute a value and possibly a gradient and hessian at that point. More...

#include <function.h>

Inheritance diagram for sc::Function:

Inheritance graph
[legend]
Collaboration diagram for sc::Function:

Collaboration graph
[legend]
List of all members.

Public Methods

 Function ()
 Function (StateIn &)
 Function (const Function &)
 Function (const Ref< KeyVal > &, double funcacc=DBL_EPSILON, double gradacc=DBL_EPSILON, double hessacc=DBL_EPSILON)
 The keyval constructor reads the following keywords:. More...

virtual ~Function ()
Function & operator= (const Function &)
Ref< SCMatrixKitmatrixkit () const
 Return the SCMatrixKit used to construct vectors and matrices.

RefSCDimension dimension () const
 Return the SCDimension of the problem.

virtual void save_data_state (StateOut &)
 Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. More...

virtual double value ()
 Return the value of the function.

int value_needed () const
 Returns nonzero if the current value is not up-to-date.

int do_value (int)
 If passed a nonzero number, compute the value the next time compute() is called. More...

AccResultdouble & value_result ()
virtual void set_desired_value_accuracy (double)
 Set the accuracy to which the value is to be computed.

virtual double actual_value_accuracy () const
 Return the accuracy with which the value has been computed.

virtual double desired_value_accuracy () const
 Return the accuracy with which the value is to be computed.

virtual void guess_hessian (RefSymmSCMatrix &)
 Compute a quick, approximate hessian.

virtual RefSymmSCMatrix inverse_hessian (RefSymmSCMatrix &)
virtual int value_implemented () const
 Information about the availability of values, gradients, and hessians.

virtual int gradient_implemented () const
virtual int hessian_implemented () const
virtual void set_x (const RefSCVector &)
 Set and retrieve the coordinate values.

RefSCVector get_x () const
const RefSCVectorget_x_no_copy () const
virtual Ref< NonlinearTransformchange_coordinates ()
 An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. More...

virtual void print (std::ostream &=ExEnv::out0()) const
 Print information about the object.

Gradient Members
These are analogous to the routines that deal with values, but work with gradients instead.

virtual RefSCVector gradient ()
int gradient_needed () const
int do_gradient (int)
virtual void set_desired_gradient_accuracy (double)
virtual double actual_gradient_accuracy () const
virtual double desired_gradient_accuracy () const
AccResultRefSCVector & gradient_result ()
Hessian Members
These are analogous to the routines that deal with values, but work with the hessian instead.

virtual RefSymmSCMatrix hessian ()
int hessian_needed () const
int do_hessian (int)
virtual void set_desired_hessian_accuracy (double)
virtual double actual_hessian_accuracy () const
virtual double desired_hessian_accuracy () const
AccResultRefSymmSCMatrix & hessian_result ()

Protected Methods

virtual void set_matrixkit (const Ref< SCMatrixKit > &)
 Set the SCMatrixKit that should be used to construct the requisite vectors and matrices.

virtual void set_dimension (const RefSCDimension &)
RefSCVectorget_x_reference ()
 Get read/write access to the coordinates for modification.

void do_change_coordinates (const Ref< NonlinearTransform > &)
 Change the coordinate system and apply the given transform to intermediates matrices and vectors.

Update Members
Update the various computable results.

virtual void set_value (double)
virtual void set_gradient (RefSCVector &)
virtual void set_hessian (RefSymmSCMatrix &)
Accuracy Setting Members
Set the accuracies with which the various computables have been computed.

virtual void set_actual_value_accuracy (double)
virtual void set_actual_gradient_accuracy (double)
virtual void set_actual_hessian_accuracy (double)

Protected Attributes

Ref< SCMatrixKitmatrixkit_
 Used to construct new matrices.

RefSCVector x_
 The variables.

RefSCDimension dim_
 The dimension of x_.

AccResultdouble value_
 The value of the function at x_.

AccResultRefSCVector gradient_
 The gradient at x_.

AccResultRefSymmSCMatrix hessian_
 The hessian at x_.


Detailed Description

The Function class is an abstract base class that, given a set of coordinates, will compute a value and possibly a gradient and hessian at that point.


Constructor & Destructor Documentation

sc::Function::Function const Ref< KeyVal > &   ,
double    funcacc = DBL_EPSILON,
double    gradacc = DBL_EPSILON,
double    hessacc = DBL_EPSILON
 

The keyval constructor reads the following keywords:.

matrixkit
Gives a SCMatrixKit object. If it is not specified, a default SCMatrixKit is selected.

value_accuracy
Sets the accuracy to which values are computed. The default is the machine accuracy.

gradient_accuracy
Sets the accuracy to which gradients are computed. The default is the machine accuracy.

hessian_accuracy
Sets the accuracy to which hessians are computed. The default is the machine accuracy.


Member Function Documentation

virtual Ref<NonlinearTransform> sc::Function::change_coordinates   [virtual]
 

An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system.

A return value of 0 means the coordinates were not changed. Otherwise, a transform object to the new coordinate system is return. The function object applies the transform to any objects it contains. This will obsolete the function data.

Reimplemented in sc::MolecularEnergy.

int sc::Function::do_value int   
 

If passed a nonzero number, compute the value the next time compute() is called.

Return a nonzero number if the value was previously to be computed.

virtual void sc::Function::save_data_state StateOut   [virtual]
 

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

Reimplemented in sc::MolecularEnergy.


The documentation for this class was generated from the following file:
Generated at Fri Jan 10 08:14:53 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14.