28 #ifndef ROOT_Math_GSLMinimizer
29 #define ROOT_Math_GSLMinimizer
56 enum EGSLMinimizerType {
65 class GSLMultiMinimizer;
67 class MinimTransformFunction;
86 class GSLMinimizer :
public ROOT::Math::BasicMinimizer {
93 GSLMinimizer (ROOT::Math::EGSLMinimizerType type = ROOT::Math::kConjugateFR );
98 GSLMinimizer (
const char * type );
103 virtual ~GSLMinimizer ();
111 GSLMinimizer(
const GSLMinimizer &) : BasicMinimizer() {}
116 GSLMinimizer & operator = (
const GSLMinimizer & rhs) {
117 if (
this == &rhs)
return *
this;
124 virtual void SetFunction(
const ROOT::Math::IMultiGenFunction & func);
127 virtual void SetFunction(
const ROOT::Math::IMultiGradFunction & func) { BasicMinimizer::SetFunction(func);}
130 virtual bool Minimize();
134 virtual double Edm()
const {
return 0; }
138 virtual const double * MinGradient()
const;
141 virtual unsigned int NCalls()
const;
145 virtual bool ProvidesError()
const {
return false; }
148 virtual const double * Errors()
const {
156 virtual double CovMatrix(
unsigned int ,
unsigned int )
const {
return 0; }
166 ROOT::Math::GSLMultiMinimizer * fGSLMultiMin;