59 std::span<const ROOT::Fit::ParameterSettings> parameters)
61 assert(function !=
nullptr &&
"function is a nullptr");
69 for (
unsigned i = 0; i <
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(
nDim);
162 for (
unsigned int ix = 0; ix <
nDim; ++ix) {
225 std::vector<DerivatorElement> &gradient)
277 gradient[ix].derivative =
grd;
278 gradient[ix].second_derivative =
g2;
279 gradient[ix].step_size =
gstep;
285 return out <<
"(derivative: " <<
value.derivative <<
", second_derivative: " <<
value.second_derivative
286 <<
", 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...
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
double Eps() const
eps returns the smallest possible number so that 1.+eps > 1.
double Eps2() const
eps2 returns 2*sqrt(eps)
std::vector< double > fVxFValCache
bool fAlwaysExactlyMimicMinuit2
void SetInitialGradient(std::span< const ROOT::Fit::ParameterSettings > parameters, std::vector< DerivatorElement > &gradient)
This function was not implemented as in Minuit2.
double Int2ext(const ROOT::Fit::ParameterSettings ¶meter, double val) const
ROOT::Minuit2::SqrtUpParameterTransformation fUpperLimTrafo
ROOT::Minuit2::MnMachinePrecision fPrecision
NumericalDerivator(bool always_exactly_mimic_minuit2=true)
void SetupDifferentiate(unsigned int nDim, const FCNBase *function, const double *cx, std::span< const ROOT::Fit::ParameterSettings > parameters)
This function sets internal state based on input parameters.
double DInt2Ext(const ROOT::Fit::ParameterSettings ¶meter, double val) const
double Ext2int(const ROOT::Fit::ParameterSettings ¶meter, double val) const
DerivatorElement operator()(unsigned int nDim, const FCNBase *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, const DerivatorElement &previous)
std::vector< double > fVx
std::vector< DerivatorElement > Differentiate(unsigned int nDim, const FCNBase *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, std::span< const DerivatorElement > previous_gradient)
ROOT::Minuit2::SinParameterTransformation fDoubleLimTrafo
DerivatorElement FastPartialDerivative(const FCNBase *function, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, const DerivatorElement &previous)
ROOT::Minuit2::SqrtLowParameterTransformation fLowerLimTrafo
DerivatorElement PartialDerivative(unsigned int nDim, const FCNBase *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, DerivatorElement previous)
std::vector< double > fVxExternal
std::ostream & operator<<(std::ostream &, const LAVector &)