5 #ifndef BPP_NUMERIC_FUNCTION_CONJUGATEGRADIENTMULTIDIMENSIONS_H 6 #define BPP_NUMERIC_FUNCTION_CONJUGATEGRADIENTMULTIDIMENSIONS_H 32 std::shared_ptr<DirectionFunction>
f1dim_;
60 throw NullPointerException(
"ConjugateGradientMultiDimensions::firstOrderDerivableFunction() : no function associated to this optimizer.");
72 throw NullPointerException(
"ConjugateGradientMultiDimensions::firstOrderDerivableFunction() : no function associated to this optimizer.");
86 void getGradient(std::vector<double>& gradient)
const;
89 #endif // BPP_NUMERIC_FUNCTION_CONJUGATEGRADIENTMULTIDIMENSIONS_H This is the abstract class for first order derivable functions.
std::shared_ptr< FunctionInterface > function_
The function to optimize.
std::shared_ptr< const FirstOrderDerivable > getFirstOrderDerivableFunction() const
double doStep()
This function is called by the step() method and contains all calculations.
std::vector< double > xi_
The parameter list object.
BrentOneDimension optimizer_
FirstOrderDerivable & firstOrderDerivableFunction()
The base class exception for NULL pointer error. This exception may be thrown when an unexpected NULL...
ConjugateGradientMultiDimensions(std::shared_ptr< FirstOrderDerivable > function)
virtual ~ConjugateGradientMultiDimensions()
void doInit(const ParameterList ¶ms)
This function is called by the init() method and contains all calculations.
Brent's optimization for one parameter.
Partial implementation of the Optimizer interface.
Conjugate gradient optimization method.
std::shared_ptr< FirstOrderDerivable > getFirstOrderDerivableFunction()
const FirstOrderDerivable & firstOrderDerivableFunction() const
std::shared_ptr< DirectionFunction > f1dim_
ConjugateGradientMultiDimensions * clone() const
Create a copy of this object and send a pointer to it.
void getGradient(std::vector< double > &gradient) const