10#ifndef ROOT_Minuit2_FCNGradAdapter 
   11#define ROOT_Minuit2_FCNGradAdapter 
   34template <
class Function>
 
   42   double operator()(std::vector<double> 
const& 
v)
 const override { 
return fFunc.operator()(&
v[0]); }
 
   45   double Up()
 const override { 
return fUp; }
 
   47   std::vector<double> 
Gradient(std::vector<double> 
const& 
v)
 const override 
 
   60      if (
fFunc.returnsInMinuit2ParameterSpace()) {
 
 
   68   std::vector<double> 
G2(std::vector<double> 
const&  
x)
 const override {
 
   72         unsigned int n = 
fFunc.NDim();
 
   78            for (
unsigned int i = 0; i < 
n; i++)
 
 
   89   std::vector<double> 
Hessian(std::vector<double> 
const&  
x )
 const override {
 
   90      unsigned int n = 
fFunc.NDim();
 
 
  127   std::function<std::vector<double>(std::vector<double> 
const& )> 
fG2Func;
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Double_t(* Function)(Double_t)
 
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
 
template wrapped class for adapting to FCNBase signature a IGradFunction
 
double Up() const override
Error definition of the function.
 
FCNGradAdapter(const Function &f, double up=1.)
 
std::vector< double > G2(std::vector< double > const &x) const override
return second derivatives (diagonal of the Hessian matrix)
 
GradientParameterSpace gradParameterSpace() const override
 
double operator()(const double *v) const
 
void SetG2Function(Func f)
 
std::vector< double > Gradient(std::vector< double > const &v) const override
 
void SetHessianFunction(Func f)
 
std::vector< double > fG2Vec
 
double operator()(std::vector< double > const &v) const override
The meaning of the vector of parameters is of course defined by the user, who uses the values of thos...
 
bool HasG2() const override
 
std::function< std::vector< double >(std::vector< double > const  &) fG2Func)
 
std::vector< double > GradientWithPrevResult(std::vector< double > const &v, double *previous_grad, double *previous_g2, double *previous_gstep) const override
 
std::function< bool(std::vector< double > const  &, double *) fHessianFunc)
 
std::vector< double > Hessian(std::vector< double > const &x) const override
compute Hessian. Return Hessian as a std::vector of size(n*n)
 
void SetErrorDef(double up) override
add interface to set dynamically a new error definition Re-implement this function if needed.
 
bool HasHessian() const override
 
std::vector< double > fHessian
 
bool HasGradient() const override
 
std::vector< double > fGrad
 
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...