00001 #ifndef _Q_MINIMIZER_HH_ 00002 #define _Q_MINIMIZER_HH_ 00003 00013 #include "QCuore.hh" 00014 #include <gsl/gsl_min.h> 00015 #include "QMathFunction.hh" 00016 00017 Q_BEGIN_NAMESPACE 00018 00019 class QMinimizer 00020 { 00021 public: 00023 QMinimizer(); 00025 ~QMinimizer(); 00027 void SetVerbose() {fVerbose = true;} 00036 double GetMinimum(QMathFunction func,double minx, double maxx, double epsabs=0.001, double epsrel=0.0); 00045 double GetMaximum(QMathFunction func,double minx, double maxx, double epsabs=0.001, double epsrel=0.0); 00046 00047 private: 00049 static QMathFunction::QRoutinePointer fCurrentFunction; 00051 static double MinusFunc(double x, double* params); 00052 00054 gsl_min_fminimizer *fMinimizer; 00056 bool fVerbose; 00057 }; 00058 00059 Q_END_NAMESPACE 00060 00061 00062 #endif