10#ifndef ROOT_Minuit2_FCNBase
11#define ROOT_Minuit2_FCNBase
77 double operator()(std::span<const double>
v)
const override = 0;
105 virtual double Up()
const = 0;
115 virtual std::vector<double>
Gradient(std::span<const double> )
const {
return {}; }
117 double * ,
double * )
const
127 virtual std::vector<double>
G2(std::span<const double> )
const {
return {};}
130 virtual std::vector<double>
Hessian(std::span<const double> )
const {
return {};}
134 virtual bool HasG2()
const {
return false; }
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
virtual double Up() const =0
Error definition of the function.
virtual std::vector< double > Gradient(std::span< const double >) const
virtual bool HasHessian() const
virtual std::vector< double > G2(std::span< const double >) const
return second derivatives (diagonal of the Hessian matrix)
virtual void SetErrorDef(double)
add interface to set dynamically a new error definition Re-implement this function if needed.
virtual std::vector< double > Hessian(std::span< const double >) const
return Hessian
double operator()(std::span< const double > v) const override=0
The meaning of the vector of parameters is of course defined by the user, who uses the values of thos...
virtual GradientParameterSpace gradParameterSpace() const
virtual double ErrorDef() const
Error definition of the function.
virtual std::vector< double > GradientWithPrevResult(std::span< const double > parameters, double *, double *, double *) const
virtual bool HasG2() const
virtual bool HasGradient() const
Class from which all the other classes, representing functions, inherit.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...