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.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout