man sc_Function (Fonctions bibliothèques) - 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.

NAME

sc::Function - 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.

SYNOPSIS



#include <function.h>

Inherits sc::SavableState, and sc::Compute.

Inherited by sc::MolecularEnergy, and sc::Volume.

Public Member Functions

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:. Function & operator= (const Function &)

Ref< SCMatrixKit > matrixkit () 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. 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. 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 RefSCVector & get_x_no_copy () const

virtual Ref< NonlinearTransform > change_coordinates ()

An optimizer can call change coordinates periodically to give the function an opportunity to change its coordinate system. 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 Member Functions

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 &)

RefSCVector & get_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< SCMatrixKit > matrixkit_

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, sc::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MBPT2_R12, sc::PsiWavefunction, sc::PsiSCF, sc::PsiCCSD, sc::PsiCCSD_T, sc::CLHF, sc::CLSCF, sc::HSOSHF, sc::HSOSSCF, sc::SCF, sc::UHF, sc::UnrestrictedSCF, sc::OneBodyWavefunction, and sc::Wavefunction.

Author

Generated automatically by Doxygen for MPQC from the source code.