|
MPQC 3.0.0-alpha
|
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. More...
#include <math/optimize/function.h>
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 () |
Members that check whether the desired accuracies were set to the default values. | |
| virtual bool | desired_value_accuracy_set_to_default () const |
| virtual bool | desired_gradient_accuracy_set_to_default () const |
| virtual bool | desired_hessian_accuracy_set_to_default () const |
| virtual void | guess_hessian (RefSymmSCMatrix &) |
| Compute a quick, approximate hessian. | |
| virtual RefSymmSCMatrix | inverse_hessian (RefSymmSCMatrix &) |
Members that check the availability of values, gradients, and hessians. | |
| virtual int | value_implemented () const |
| 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. | |
| void | print_desired_accuracy (std::ostream &=ExEnv::out0()) const |
| similar to print(), but only prins desired accuracies | |
| virtual bool | throw_if_tolerance_exceeded () const |
| Overridden Compute member. | |
Public Member Functions inherited from sc::SavableState | |
| SavableState & | operator= (const SavableState &) |
| void | save_state (StateOut &) |
| Save the state of the object as specified by the StateOut object. | |
| void | save_object_state (StateOut &) |
| This can be used for saving state when the exact type of the object is known for both the save and the restore. | |
| virtual void | save_vbase_state (StateOut &) |
| Save the virtual bases for the object. | |
Public Member Functions inherited from sc::DescribedClass | |
| DescribedClass (const DescribedClass &) | |
| DescribedClass & | operator= (const DescribedClass &) |
| ClassDesc * | class_desc () const MPQC__NOEXCEPT |
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. | |
| const char * | class_name () const |
| Return the name of the object's exact type. | |
| int | class_version () const |
| Return the version of the class. | |
| Ref< DescribedClass > | ref () |
| Return this object wrapped up in a Ref smart pointer. | |
Public Member Functions inherited from sc::RefCount | |
| size_t | identifier () const |
| Return the unique identifier for this object that can be compared for different objects of different types. | |
| int | lock_ptr () const |
| Lock this object. | |
| int | unlock_ptr () const |
| Unlock this object. | |
| void | use_locks (bool inVal) |
| start and stop using locks on this object | |
| refcount_t | nreference () const |
| Return the reference count. | |
| refcount_t | reference () |
| Increment the reference count and return the new count. | |
| refcount_t | dereference () |
| Decrement the reference count and return the new count. | |
| int | managed () const |
| Return 1 if the object is managed. Otherwise return 0. | |
Public Member Functions inherited from sc::Compute | |
| virtual void | obsolete () |
| Marks all results as being out of date. | |
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 Member Functions inherited from sc::SavableState | |
| SavableState (const SavableState &) | |
| SavableState (StateIn &) | |
| Each derived class StateIn CTOR handles the restore corresponding to calling save_object_state, save_vbase_state, and save_data_state listed above. | |
Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
Protected Member Functions inherited from sc::Compute | |
| virtual void | compute ()=0 |
| Recompute at least the results that have compute true and are not already computed. | |
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_. | |
| bool | desired_value_accuracy_set_to_default_ |
| bool | desired_gradient_accuracy_set_to_default_ |
| bool | desired_hessian_accuracy_set_to_default_ |
| bool | throw_if_tolerance_exceeded_ |
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 (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. | |
Additional Inherited Members | |
Static Public Member Functions inherited from sc::SavableState | |
| static void | save_state (SavableState *s, StateOut &) |
| static SavableState * | restore_state (StateIn &si) |
| Restores objects saved with save_state. | |
| static SavableState * | key_restore_state (StateIn &si, const char *keyword) |
| Like restore_state, but keyword is used to override values while restoring. | |
| static SavableState * | dir_restore_state (StateIn &si, const char *objectname, const char *keyword=0) |
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.
| 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:
matrixkitGives a SCMatrixKit object. If it is not specified, a default SCMatrixKit is selected.
value_accuracySets the accuracy to which values are computed. The default is the machine accuracy.
gradient_accuracySets the accuracy to which gradients are computed. The default is the machine accuracy.
hessian_accuracySets the accuracy to which hessians are computed. The default is the machine accuracy.
throw_if_tolerance_exceededIf this is true, then an exception will be thrown if a result cannot be computed to the desired accuracy. The default is true.
|
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 |
Reimplemented in sc::MolecularEnergy.
|
virtual |
Reimplemented in sc::MolecularEnergy, sc::NonreentrantUncappedTorusHoleShape, sc::ReentrantUncappedTorusHoleShape, sc::SphereShape, sc::Uncapped5SphereExclusionShape, sc::UncappedTorusHoleShape, and sc::UnionShape.
|
virtual |
Compute a quick, approximate hessian.
Reimplemented in sc::MolecularEnergy.
|
virtual |
Reimplemented in sc::MolecularEnergy.
|
virtual |
Reimplemented in sc::MolecularEnergy.
|
virtual |
Print information about the object.
Reimplemented from sc::DescribedClass.
Reimplemented in mpqc::TA::SCF, mpqc::TA::Wavefunction, sc::CCR12, sc::CI, sc::CLHF, sc::CLKS, sc::CLSCF, sc::DFCLHF, sc::ExternPT2R12, sc::FockBuildCLHF, sc::HSOSHF, sc::HSOSKS, sc::HSOSSCF, sc::ManyBodyWavefunction, sc::MBPT2, sc::MBPT2_R12, sc::MolcasPT2R12, sc::MolecularEnergy, sc::OneBodyWavefunction, sc::OSSHF, sc::OSSSCF, sc::PsiCC3_PT2R12, sc::PsiCC_PT2R12, sc::PsiCCSD_PT2R12, sc::PsiCCSD_PT2R12T, sc::PsiCLHF, sc::PsiCorrWavefunction, sc::PsiHSOSHF, sc::PsiRASCI, sc::PsiRASSCF, sc::PsiUHF, sc::PsiWavefunction, sc::PT2R12, sc::SCF, sc::SphereShape, sc::SpinOrbitalPT2R12, sc::TaylorMolecularEnergy, sc::TCHF, sc::TCSCF, sc::UHF, sc::UKS, sc::UncappedTorusHoleShape, sc::UnrestrictedSCF, and sc::Wavefunction.
|
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::CADFCLHF, sc::CI, sc::CLHF, sc::CLKS, sc::CLSCF, sc::DFCLHF, sc::ExtendedHuckelWfn, sc::FockBuildCLHF, sc::HCoreWfn, sc::HSOSHF, sc::HSOSKS, sc::HSOSSCF, sc::LCorr, sc::LMP2, sc::ManyBodyWavefunction, sc::MBPT2, sc::MBPT2_R12, sc::MolecularEnergy, sc::MP2BasisExtrap, sc::OneBodyWavefunction, sc::OSSHF, sc::OSSSCF, sc::PsiCC2, sc::PsiCC3, sc::PsiCC3_PT2R12, sc::PsiCC, sc::PsiCC_PT2R12, sc::PsiCCSD, sc::PsiCCSD_PT2R12, sc::PsiCCSD_PT2R12T, sc::PsiCCSD_T, sc::PsiCorrWavefunction, sc::PsiRASCI, sc::PsiRASSCF, sc::PsiSCF, sc::PsiWavefunction, sc::PT2R12, sc::SCF, sc::SpinOrbitalPT2R12, sc::SumMolecularEnergy, sc::SuperpositionOfAtomicDensities, sc::TaylorMolecularEnergy, sc::TCHF, sc::TCSCF, sc::UHF, sc::UKS, sc::UnrestrictedSCF, and sc::Wavefunction.
|
virtual |
Reimplemented in sc::MolecularEnergy.
|
virtual |
Set the accuracy to which the value is to be computed.
Reimplemented in sc::ExternPT2R12, sc::ManyBodyWavefunction, sc::MBPT2, sc::MBPT2_R12, sc::OneBodyWavefunction, sc::PsiCorrWavefunction, sc::PT2R12, sc::SpinOrbitalPT2R12, and sc::UnrestrictedSCF.
|
protectedvirtual |
Reimplemented in sc::MolecularEnergy.
|
virtual |
Set and retrieve the coordinate values.
Reimplemented in sc::MolecularEnergy, sc::SumMolecularEnergy, and sc::Volume.
|
virtual |
Overridden Compute member.
Reimplemented from sc::Compute.
|
virtual |
Reimplemented in sc::CCR12, sc::CI, sc::CLHF, sc::CLKS, sc::ExtendedHuckelWfn, sc::ExternPT2R12, sc::HCoreWfn, sc::HSOSHF, sc::HSOSKS, sc::LMP2, sc::MBPT2, sc::MBPT2_R12, sc::MolcasPT2R12, sc::OSSHF, sc::PT2R12, sc::Shape, sc::SpinOrbitalPT2R12, sc::SumMolecularEnergy, sc::SuperpositionOfAtomicDensities, sc::TaylorMolecularEnergy, sc::TCHF, sc::UHF, and sc::UKS.