10 #ifndef ROOT_Minuit2_HessianGradientCalculator
11 #define ROOT_Minuit2_HessianGradientCalculator
24 class MnUserTransformation;
25 class MnMachinePrecision;
32 class HessianGradientCalculator :
public GradientCalculator {
36 HessianGradientCalculator(
const MnFcn& fcn,
const MnUserTransformation& par,
37 const MnStrategy& stra) :
38 fFcn(fcn), fTransformation(par), fStrategy(stra) {}
40 virtual ~HessianGradientCalculator() {}
42 virtual FunctionGradient operator()(
const MinimumParameters&)
const;
44 virtual FunctionGradient operator()(
const MinimumParameters&,
45 const FunctionGradient&)
const;
47 std::pair<FunctionGradient, MnAlgebraicVector> DeltaGradient(
const MinimumParameters&,
const FunctionGradient&)
const;
49 const MnFcn& Fcn()
const {
return fFcn;}
50 const MnUserTransformation& Trafo()
const {
return fTransformation;}
51 const MnMachinePrecision& Precision()
const;
52 const MnStrategy& Strategy()
const {
return fStrategy;}
54 unsigned int Ncycle()
const;
55 double StepTolerance()
const;
56 double GradTolerance()
const;
61 const MnUserTransformation& fTransformation;
62 const MnStrategy& fStrategy;
69 #endif // ROOT_Minuit2_HessianGradientCalculator