10#ifndef ROOT_Minuit2_FumiliFCNBase
11#define ROOT_Minuit2_FumiliFCNBase
98 std::vector<double>
Gradient(std::vector<double>
const&)
const override {
return fGradient;}
107 std::vector<double>
Hessian(std::vector<double>
const&)
const override {
return fHessian;}
108 virtual double Hessian(
unsigned int row,
unsigned int col)
const
112 return fHessian[col + row * (row + 1) / 2];
114 return fHessian[row + col * (col + 1) / 2];
132 fHessian = std::vector<double>(
static_cast<int>(0.5 * npar * (npar + 1)));
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
FumiliFCNBase()
Default Constructor.
bool HasGradient() const override
std::vector< double > Gradient(std::vector< double > const &) const override
Return the gradient vector of the function at the given parameter point.
std::vector< double > & Hessian()
virtual double Value() const
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll m...
std::vector< double > fGradient
std::vector< double > Hessian(std::vector< double > const &) const override
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNB...
virtual const std::vector< double > & Gradient() const
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll me...
std::vector< double > fHessian
virtual void InitAndReset(unsigned int npar)
initialize and reset values of gradien and Hessian
void SetFCNValue(double value)
unsigned int fNumberOfParameters
virtual void EvaluateAll(std::vector< double > const &par)=0
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p ...
virtual unsigned int Dimension()
return number of function variable (parameters) , i.e.
FumiliFCNBase(unsigned int npar)
Constructor which initializes the class with the function provided by the user for modeling the data.
virtual double Hessian(unsigned int row, unsigned int col) const
std::vector< double > & Gradient()