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 > &, doublefuncacc = DBL_EPSILON, doublegradacc = DBL_EPSILON, doublehessacc = 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::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'.

  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::MBPT2, sc::MBPT2_R12, sc::HCoreWfn, sc::SumMolecularEnergy, sc::HSOSKS, sc::UKS, sc::CLKS, sc::ExtendedHuckelWfn, sc::TaylorMolecularEnergy, sc::Shape, sc::UHF, sc::CLHF, sc::HSOSHF, sc::OSSHF, and sc::TCHF'.

Author

Generated automatically by Doxygen for MPQC from the source code'.