MADNESS 0.10.1
madness::OptimizationTargetInterface Struct Referenceabstract

The interface to be provided by functions to be optimized. More...

#include <solvers.h>

Inheritance diagram for madness::OptimizationTargetInterface:

Public Member Functions

virtual ~OptimizationTargetInterface ()
virtual Tensor< double > gradient (const Tensor< double > &x)
 Should return the derivative of the function.
virtual bool provides_gradient () const
 Override this to return true if the derivative is implemented.
double test_gradient (Tensor< double > &x, double value_precision, bool doprint=true)
 Numerical test of the derivative ... optionally prints to stdout, returns max abs error.
virtual double value (const Tensor< double > &x)=0
 Should return the value of the objective function.
virtual void value_and_gradient (const Tensor< double > &x, double &value, Tensor< double > &gradient)
 Reimplement if more efficient to evaluate both value and gradient in one call.

Detailed Description

The interface to be provided by functions to be optimized.

Constructor & Destructor Documentation

◆ ~OptimizationTargetInterface()

virtual madness::OptimizationTargetInterface::~OptimizationTargetInterface ( )
inlinevirtual

Member Function Documentation

◆ gradient()

virtual Tensor< double > madness::OptimizationTargetInterface::gradient ( const Tensor< double > & x)
inlinevirtual

Should return the derivative of the function.

Reimplemented in CoreFittingTarget, Fred, madness::MolecularEnergy, madness::Nemo, madness::Znemo, Test2, Test2, Test, and Test.

Referenced by test_gradient(), and value_and_gradient().

◆ provides_gradient()

virtual bool madness::OptimizationTargetInterface::provides_gradient ( ) const
inlinevirtual

Override this to return true if the derivative is implemented.

Reimplemented in CoreFittingTarget, Fred, madness::MolecularEnergy, madness::Nemo, Test2, Test2, Test, and Test.

◆ test_gradient()

double OptimizationTargetInterface::test_gradient ( Tensor< double > & x,
double value_precision,
bool doprint = true )

Numerical test of the derivative ... optionally prints to stdout, returns max abs error.

References std::abs(), madness::FunctionDefaults< NDIM >::tt, madness::Future< void >::value, gradient(), and pow().

◆ value()

virtual double madness::OptimizationTargetInterface::value ( const Tensor< double > & x)
pure virtual

Should return the value of the objective function.

Implemented in CoreFittingTarget, Fred, madness::CC2, madness::MolecularEnergy, madness::MP2, madness::Nemo, madness::OEP, madness::Znemo, Test2, Test2, Test, and Test.

Referenced by value_and_gradient().

◆ value_and_gradient()

virtual void madness::OptimizationTargetInterface::value_and_gradient ( const Tensor< double > & x,
double & value,
Tensor< double > & gradient )
inlinevirtual

Reimplement if more efficient to evaluate both value and gradient in one call.

Reimplemented in Fred.

References madness::Future< void >::value, gradient(), and value().


The documentation for this struct was generated from the following files: