Provided by: libsc-doc_2.3.1-21_all bug

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
       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 ()
           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.

   Protected Member Functions
       Update Members
       Update the various computable results.

           virtual void set_value (double)
           virtual void set_gradient (RefSCVector &)
           virtual void set_hessian (RefSymmSCMatrix &)
           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 &)

   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_.

   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)
       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.
       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:
       virtual ~Function ()
       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.

   Additional Inherited Members

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::MBPT2, sc::MBPT2_R12, sc::SumMolecularEnergy, sc::HCoreWfn, sc::SCF,
       sc::PsiCCSD_T, sc::PsiCCSD, sc::Wavefunction, sc::MolecularEnergy, sc::HSOSSCF,
       sc::PsiSCF, sc::HSOSKS, sc::OneBodyWavefunction, sc::UKS, sc::CLSCF, sc::CLKS,
       sc::UnrestrictedSCF, sc::TaylorMolecularEnergy, sc::TCSCF, sc::ExtendedHuckelWfn,
       sc::OSSSCF, sc::PsiWavefunction, sc::UHF, sc::CLHF, sc::HSOSHF, sc::MP2BasisExtrap,
       sc::OSSHF, and sc::TCHF.

Author

       Generated automatically by Doxygen for MPQC from the source code.