58 std::span<const ROOT::Fit::ParameterSettings> parameters)
60 assert(function !=
nullptr &&
"function is a nullptr");
62 fVx.resize(function->NDim());
65 std::copy(
cx,
cx + function->NDim(),
fVx.data());
68 for (
unsigned i = 0; i < function->NDim(); i++) {
83 std::span<const ROOT::Fit::ParameterSettings> parameters,
92 std::span<const ROOT::Fit::ParameterSettings> parameters,
103 double step = std::max(
optstp, std::abs(0.1 *
deriv.step_size));
120 deriv.step_size = step;
146 std::span<const ROOT::Fit::ParameterSettings> parameters,
152std::vector<DerivatorElement>
154 std::span<const ROOT::Fit::ParameterSettings> parameters,
159 std::vector<DerivatorElement> gradient;
160 gradient.reserve(function->NDim());
162 for (
unsigned int ix = 0; ix < function->NDim(); ++ix) {
225 std::span<const ROOT::Fit::ParameterSettings> parameters,
226 std::vector<DerivatorElement> &gradient)
278 gradient[ix].derivative =
grd;
279 gradient[ix].second_derivative =
g2;
280 gradient[ix].step_size =
gstep;
286 return out <<
"(derivative: " <<
value.derivative <<
", second_derivative: " <<
value.second_derivative
287 <<
", step_size: " <<
value.step_size <<
")";
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Class, describing value, limits and step size of the parameters Provides functionality also to set/re...
double Eps() const
eps returns the smallest possible number so that 1.+eps > 1.
double Eps2() const
eps2 returns 2*sqrt(eps)
DerivatorElement operator()(const ROOT::Math::IBaseFunctionMultiDim *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, const DerivatorElement &previous)
std::vector< double > fVxFValCache
bool fAlwaysExactlyMimicMinuit2
double Int2ext(const ROOT::Fit::ParameterSettings ¶meter, double val) const
ROOT::Minuit2::SqrtUpParameterTransformation fUpperLimTrafo
ROOT::Minuit2::MnMachinePrecision fPrecision
std::vector< DerivatorElement > Differentiate(const ROOT::Math::IBaseFunctionMultiDim *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, std::span< const DerivatorElement > previous_gradient)
void SetInitialGradient(const ROOT::Math::IBaseFunctionMultiDim *function, std::span< const ROOT::Fit::ParameterSettings > parameters, std::vector< DerivatorElement > &gradient)
This function was not implemented as in Minuit2.
NumericalDerivator(bool always_exactly_mimic_minuit2=true)
double DInt2Ext(const ROOT::Fit::ParameterSettings ¶meter, double val) const
double Ext2int(const ROOT::Fit::ParameterSettings ¶meter, double val) const
std::vector< double > fVx
ROOT::Minuit2::SinParameterTransformation fDoubleLimTrafo
DerivatorElement PartialDerivative(const ROOT::Math::IBaseFunctionMultiDim *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, DerivatorElement previous)
ROOT::Minuit2::SqrtLowParameterTransformation fLowerLimTrafo
DerivatorElement FastPartialDerivative(const ROOT::Math::IBaseFunctionMultiDim *function, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, const DerivatorElement &previous)
void SetupDifferentiate(const ROOT::Math::IBaseFunctionMultiDim *function, const double *cx, std::span< const ROOT::Fit::ParameterSettings > parameters)
This function sets internal state based on input parameters.
std::vector< double > fVxExternal
std::ostream & operator<<(std::ostream &, const LAVector &)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...