sc::function(3)
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 void sc::Function::set_matrixkit (const Ref< SCMatrixKit > &)
- [protected, virtual]
Set the SCMatrixKit that should be used to construct the requisite vectors and matrices. - void sc::Function::do_change_coordinates (const Ref< NonlinearTransform >
- &) [protected]
Change the coordinate system and apply the given transform to
intermediates matrices and vectors. - Ref<SCMatrixKit> sc::Function::matrixkit () const
- Return the SCMatrixKit used to construct vectors and matrices.
- 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.
- 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 int sc::Function::value_implemented () const [virtual]
- Information about the availability of values, gradients, and hessians.
- Reimplemented in sc::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MBPT2_R12, sc::CLHF, sc::HSOSHF, sc::UHF, and sc::Shape.
- 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.
Author
- Generated automatically by Doxygen for MPQC from the source code.