31 #ifndef ROOT_Math_GSLMultiFitFunctionWrapper 
   32 #define ROOT_Math_GSLMultiFitFunctionWrapper 
   34 #include "gsl/gsl_multifit.h" 
   46    typedef double ( * GSLMultiFitFPointer ) ( 
const gsl_vector *, 
void *, gsl_vector *);
 
   47    typedef void   ( * GSLMultiFitDfPointer )   ( 
const gsl_vector *, 
void *, gsl_matrix *);
 
   48    typedef void   ( * GSLMultiFitFdfPointer ) ( 
const gsl_vector *, 
void *, gsl_vector *, gsl_matrix *);
 
   58 class GSLMultiFitFunctionWrapper {
 
   62    GSLMultiFitFunctionWrapper()
 
   70 #if GSL_MAJOR_VERSION > 1 
   78    template<
class FuncVector>
 
   79    void SetFunction(
const FuncVector & f, 
unsigned int nres, 
unsigned int npar  ) {
 
   82       fFunc.f   = &GSLMultiFitFunctionAdapter<FuncVector >::F;
 
   83       fFunc.df  = &GSLMultiFitFunctionAdapter<FuncVector >::Df;
 
   84       fFunc.fdf = &GSLMultiFitFunctionAdapter<FuncVector >::FDf;
 
   87       fFunc.params =  
const_cast<void *
>(p);
 
   90    gsl_multifit_function_fdf * GetFunc() { 
return &fFunc; }
 
   95    gsl_multifit_function_fdf fFunc;