sc::Function(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ’– NAME πŸ’–

okay bestie, this is sc::Function(3) from the MPQC manual, and the whole vibe is: 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. periodt. πŸ’…

✨ SYNOPSIS ✨

#include <function.h>
  • Inherits sc::SavableState, and sc::Compute.
  • Inherited by sc::MolecularEnergy, and sc::Volume.

🌈 Public Member Functions 🌈

πŸ’« Gradient Members πŸ’«

Same energy as the routines that deal with values, but these work with gradients instead. iykyk.

  • 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 πŸ”₯

Same energy as the routines that deal with values, but these 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.

and here are the rest of the public member functions, no cap:

πŸ’œ Protected Member Functions πŸ’œ

Update Members

Update the various computable results. slay.

  • 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. facts.

  • 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 🫢

literally no extra deets listed in this section, bestie. that's it.

🌟 Detailed Description 🌟

same thing as the NAME section, because Doxygen loves a repeat: 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. iconic.

🧚 Constructor & Destructor Documentation 🧚

🧚 sc::Function::Function (...) 🧚

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 returned. 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. not me being auto-generated and still serving looks. πŸ’…


πŸ’– cute little sign-off: this MPQC source/version is 2.3.1, dated Sun Oct 4 2020, bestie. bye! 🫢✨

πŸ“¦ where this page comes from