Definition at line 40 of file NumericalDerivator.h.
Public Member Functions | |
| NumericalDerivator (bool always_exactly_mimic_minuit2=true) | |
| NumericalDerivator (const NumericalDerivator &other) | |
| NumericalDerivator (double step_tolerance, double grad_tolerance, unsigned int ncycles, double error_level, bool always_exactly_mimic_minuit2=true) | |
| bool | AlwaysExactlyMimicMinuit2 () const |
| 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) |
| double | DInt2Ext (const ROOT::Fit::ParameterSettings ¶meter, double val) const |
| double | Ext2int (const ROOT::Fit::ParameterSettings ¶meter, double val) const |
| DerivatorElement | FastPartialDerivative (const FCNBase *function, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, const DerivatorElement &previous) |
| double | GetValue () const |
| double | Int2ext (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) |
| DerivatorElement | PartialDerivative (unsigned int nDim, const FCNBase *function, const double *x, std::span< const ROOT::Fit::ParameterSettings > parameters, unsigned int i_component, DerivatorElement previous) |
| void | PreseedFVal (double fval, std::span< const double > cx) |
Pre-seed the cache of the function value at the central point, so that a subsequent SetupDifferentiate() at the same point cx (in Minuit-internal coordinates) can skip its function evaluation. | |
| void | SetAlwaysExactlyMimicMinuit2 (bool flag) |
| void | SetErrorLevel (double value) |
| void | SetGradTolerance (double value) |
| void | SetInitialGradient (std::span< const ROOT::Fit::ParameterSettings > parameters, std::vector< DerivatorElement > &gradient) |
| This function was not implemented as in Minuit2. | |
| void | SetNCycles (unsigned int value) |
| void | SetStepTolerance (double value) |
| 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. | |
Private Attributes | |
| bool | fAlwaysExactlyMimicMinuit2 |
| double | fDfmin |
| ROOT::Minuit2::SinParameterTransformation | fDoubleLimTrafo |
| double | fGradTolerance = 0.1 |
| ROOT::Minuit2::SqrtLowParameterTransformation | fLowerLimTrafo |
| unsigned int | fNCycles = 2 |
| ROOT::Minuit2::MnMachinePrecision | fPrecision |
| double | fStepTolerance = 0.5 |
| double | fUp = 1 |
| ROOT::Minuit2::SqrtUpParameterTransformation | fUpperLimTrafo |
| double | fVal = 0 |
| double | fVrysml |
| std::vector< double > | fVx |
| std::vector< double > | fVxExternal |
| std::vector< double > | fVxFValCache |
#include <Minuit2/NumericalDerivator.h>
|
explicit |
Definition at line 39 of file NumericalDerivator.cxx.
|
default |
| NumericalDerivator::NumericalDerivator | ( | double | step_tolerance, |
| double | grad_tolerance, | ||
| unsigned int | ncycles, | ||
| double | error_level, | ||
| bool | always_exactly_mimic_minuit2 = true ) |
Definition at line 44 of file NumericalDerivator.cxx.
|
inline |
Definition at line 88 of file NumericalDerivator.h.
| std::vector< DerivatorElement > NumericalDerivator::Differentiate | ( | unsigned int | nDim, |
| const FCNBase * | function, | ||
| const double * | x, | ||
| std::span< const ROOT::Fit::ParameterSettings > | parameters, | ||
| std::span< const DerivatorElement > | previous_gradient ) |
Definition at line 153 of file NumericalDerivator.cxx.
| double NumericalDerivator::DInt2Ext | ( | const ROOT::Fit::ParameterSettings & | parameter, |
| double | val ) const |
Definition at line 202 of file NumericalDerivator.cxx.
| double NumericalDerivator::Ext2int | ( | const ROOT::Fit::ParameterSettings & | parameter, |
| double | val ) const |
Definition at line 185 of file NumericalDerivator.cxx.
| DerivatorElement NumericalDerivator::FastPartialDerivative | ( | const FCNBase * | function, |
| std::span< const ROOT::Fit::ParameterSettings > | parameters, | ||
| unsigned int | i_component, | ||
| const DerivatorElement & | previous ) |
Definition at line 91 of file NumericalDerivator.cxx.
|
inline |
Definition at line 75 of file NumericalDerivator.h.
| double NumericalDerivator::Int2ext | ( | const ROOT::Fit::ParameterSettings & | parameter, |
| double | val ) const |
Definition at line 169 of file NumericalDerivator.cxx.
| DerivatorElement NumericalDerivator::operator() | ( | unsigned int | nDim, |
| const FCNBase * | function, | ||
| const double * | x, | ||
| std::span< const ROOT::Fit::ParameterSettings > | parameters, | ||
| unsigned int | i_component, | ||
| const DerivatorElement & | previous ) |
Definition at line 145 of file NumericalDerivator.cxx.
| DerivatorElement NumericalDerivator::PartialDerivative | ( | unsigned int | nDim, |
| const FCNBase * | function, | ||
| const double * | x, | ||
| std::span< const ROOT::Fit::ParameterSettings > | parameters, | ||
| unsigned int | i_component, | ||
| DerivatorElement | previous ) |
Definition at line 82 of file NumericalDerivator.cxx.
|
inline |
Pre-seed the cache of the function value at the central point, so that a subsequent SetupDifferentiate() at the same point cx (in Minuit-internal coordinates) can skip its function evaluation.
Callers that already know the function value at the gradient point (e.g. from the line search that Minuit just completed) can use this to avoid one full function call.
Definition at line 55 of file NumericalDerivator.h.
|
inline |
Definition at line 89 of file NumericalDerivator.h.
|
inline |
Definition at line 79 of file NumericalDerivator.h.
|
inline |
Definition at line 77 of file NumericalDerivator.h.
| void NumericalDerivator::SetInitialGradient | ( | std::span< const ROOT::Fit::ParameterSettings > | parameters, |
| std::vector< DerivatorElement > & | gradient ) |
This function was not implemented as in Minuit2.
Now it copies the behavior of InitialGradientCalculator. See https://github.com/roofit-dev/root/issues/10
Definition at line 224 of file NumericalDerivator.cxx.
|
inline |
Definition at line 78 of file NumericalDerivator.h.
|
inline |
Definition at line 76 of file NumericalDerivator.h.
| void NumericalDerivator::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.
This state setup is used in the actual (partial) derivative calculations.
Definition at line 58 of file NumericalDerivator.cxx.
|
private |
Definition at line 112 of file NumericalDerivator.h.
|
private |
Definition at line 100 of file NumericalDerivator.h.
|
private |
Definition at line 107 of file NumericalDerivator.h.
|
private |
Definition at line 93 of file NumericalDerivator.h.
|
private |
Definition at line 109 of file NumericalDerivator.h.
|
private |
Definition at line 111 of file NumericalDerivator.h.
|
private |
Definition at line 105 of file NumericalDerivator.h.
|
private |
Definition at line 92 of file NumericalDerivator.h.
|
private |
Definition at line 94 of file NumericalDerivator.h.
|
private |
Definition at line 108 of file NumericalDerivator.h.
|
private |
Definition at line 95 of file NumericalDerivator.h.
|
private |
Definition at line 101 of file NumericalDerivator.h.
|
private |
Definition at line 97 of file NumericalDerivator.h.
|
private |
Definition at line 98 of file NumericalDerivator.h.
|
private |
Definition at line 99 of file NumericalDerivator.h.