31 #ifndef ROOT_Math_GSLMinimizer1D 
   32 #define ROOT_Math_GSLMinimizer1D 
   56       enum Type {kGOLDENSECTION,
 
   61    class GSL1DMinimizerWrapper;
 
   62    class GSLFunctionWrapper;
 
   81    class GSLMinimizer1D: 
public IMinimizer1D {
 
   89       explicit GSLMinimizer1D(Minim1D::Type type=Minim1D::kBRENT);
 
   94       virtual ~GSLMinimizer1D();
 
   98       GSLMinimizer1D(
const GSLMinimizer1D &);
 
   99       GSLMinimizer1D & operator = (
const GSLMinimizer1D &);
 
  108       template <
class UserFunc>
 
  109       void SetFunction( 
const UserFunc & f, 
double xmin, 
double xlow, 
double xup) {
 
  111          SetFunction(  &GSLFunctionAdapter<UserFunc>::F, const_cast<void *>(p), xmin, xlow, xup );
 
  120       void SetFunction( GSLFuncPointer  f, 
void * params, 
double xmin, 
double xlow, 
double xup);
 
  132       double XMinimum() 
const;
 
  137       double XLower() 
const;
 
  142       double XUpper() 
const;
 
  147       double FValMinimum() 
const;
 
  152       double FValLower() 
const;
 
  157       double FValUpper() 
const;
 
  168       bool Minimize( 
int maxIter, 
double absTol, 
double relTol);
 
  174       int Iterations()
 const {
 
  181       int Status()
 const { 
return fStatus; }
 
  186       const char * Name() 
const;
 
  195       static int TestInterval( 
double xlow, 
double xup, 
double epsAbs, 
double epsRel);
 
  214       GSL1DMinimizerWrapper * fMinimizer;
 
  215       GSLFunctionWrapper * fFunction;