10 #ifndef ROOT_Minuit2_InitialGradientCalculator 
   11 #define ROOT_Minuit2_InitialGradientCalculator 
   21 class MnUserTransformation;
 
   22 class MnMachinePrecision;
 
   28 class InitialGradientCalculator : 
public GradientCalculator {
 
   32   InitialGradientCalculator(
const MnFcn& fcn, 
const MnUserTransformation& par,
 
   33                             const MnStrategy& stra) :
 
   34     fFcn(fcn), fTransformation(par), fStrategy(stra) {};
 
   36   virtual ~InitialGradientCalculator() {}
 
   38   virtual FunctionGradient operator()(
const MinimumParameters&) 
const;
 
   40   virtual FunctionGradient operator()(
const MinimumParameters&,
 
   41                                       const FunctionGradient&) 
const;
 
   43   const MnFcn& Fcn()
 const {
return fFcn;}
 
   44   const MnUserTransformation& Trafo()
 const {
return fTransformation;}
 
   45   const MnMachinePrecision& Precision() 
const;
 
   46   const MnStrategy& Strategy()
 const {
return fStrategy;}
 
   48   unsigned int Ncycle() 
const;
 
   49   double StepTolerance() 
const;
 
   50   double GradTolerance() 
const;
 
   55   const MnUserTransformation& fTransformation;
 
   56   const MnStrategy& fStrategy;
 
   63 #endif  // ROOT_Minuit2_InitialGradientCalculator