10 #ifndef ROOT_Minuit2_FunctionGradient 
   11 #define ROOT_Minuit2_FunctionGradient 
   21 class FunctionGradient {
 
   27   explicit FunctionGradient(
unsigned int n) :
 
   28    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(n)))  {}
 
   30   explicit FunctionGradient(
const MnAlgebraicVector& grd) :
 
   31    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd))) {}
 
   33   FunctionGradient(
const MnAlgebraicVector& grd, 
const MnAlgebraicVector& g2,
 
   34                    const MnAlgebraicVector& gstep) :
 
   35    fData(MnRefCountedPointer<BasicFunctionGradient>(new BasicFunctionGradient(grd, g2, gstep))) {}
 
   37   ~FunctionGradient() {}
 
   39   FunctionGradient(
const FunctionGradient& grad) : fData(grad.fData) {}
 
   41   FunctionGradient& operator=(
const FunctionGradient& grad) {
 
   46   const MnAlgebraicVector& Grad()
 const {
return fData->Grad();}
 
   47   const MnAlgebraicVector& Vec()
 const {
return fData->Vec();}
 
   48   bool IsValid()
 const {
return fData->IsValid();}
 
   50   bool IsAnalytical()
 const {
return fData->IsAnalytical();}
 
   51   const MnAlgebraicVector& G2()
 const {
return fData->G2();}
 
   52   const MnAlgebraicVector& Gstep()
 const {
return fData->Gstep();}
 
   56   MnRefCountedPointer<BasicFunctionGradient> fData;
 
   63 #endif  // ROOT_Minuit2_FunctionGradient