Man Linux: Main Page and Category List

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: .IP "matrixkit" 1c
       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.

   void sc::Function::do_change_coordinates (const Ref< NonlinearTransform >
       &) [protected]
       Change the coordinate system and apply the given transform to
       intermediates matrices and vectors.

   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.

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

   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.

   virtual int sc::Function::value_implemented () const [virtual]
       Information about the availability of values, gradients, and hessians.

       Reimplemented in sc::SumMolecularEnergy, sc::TaylorMolecularEnergy,
       sc::CLKS, sc::HSOSKS, sc::UKS, sc::MBPT2, sc::MBPT2_R12, sc::CLHF,
       sc::HSOSHF, sc::OSSHF, sc::TCHF, sc::UHF, sc::ExtendedHuckelWfn,
       sc::HCoreWfn, and sc::Shape.

Author

       Generated automatically by Doxygen for MPQC from the source code.