File indexing completed on 2025-01-30 10:22:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef ROOT_Minuit2_InitialGradientCalculator
0011 #define ROOT_Minuit2_InitialGradientCalculator
0012
0013 #include "Minuit2/GradientCalculator.h"
0014
0015 namespace ROOT {
0016
0017 namespace Minuit2 {
0018
0019 class MnFcn;
0020 class MnUserTransformation;
0021 class MnMachinePrecision;
0022 class MnStrategy;
0023
0024
0025
0026
0027 class InitialGradientCalculator : public GradientCalculator {
0028
0029 public:
0030 InitialGradientCalculator(const MnFcn &fcn, const MnUserTransformation &par, const MnStrategy &stra)
0031 : fFcn(fcn), fTransformation(par), fStrategy(stra){};
0032
0033 ~InitialGradientCalculator() override {}
0034
0035 FunctionGradient operator()(const MinimumParameters &) const override;
0036
0037 FunctionGradient operator()(const MinimumParameters &, const FunctionGradient &) const override;
0038
0039 const MnFcn &Fcn() const { return fFcn; }
0040 const MnUserTransformation &Trafo() const { return fTransformation; }
0041 const MnMachinePrecision &Precision() const;
0042 const MnStrategy &Strategy() const { return fStrategy; }
0043
0044 unsigned int Ncycle() const;
0045 double StepTolerance() const;
0046 double GradTolerance() const;
0047
0048 private:
0049 const MnFcn &fFcn;
0050 const MnUserTransformation &fTransformation;
0051 const MnStrategy &fStrategy;
0052 };
0053
0054 }
0055
0056 }
0057
0058 #endif