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;