31#ifndef ROOT_Math_GSLMultiMinFunctionWrapper
32#define ROOT_Math_GSLMultiMinFunctionWrapper
34#include "gsl/gsl_multimin.h"
66 fFunc.params =
nullptr;
74 template<
class FuncType>
77 assert (p !=
nullptr);
86 return (
fFunc.f !=
nullptr) ? true :
false;
114 fFunc.params =
nullptr;
125 template<
class FuncType>
128 assert (p !=
nullptr);
142 return GSL_MULTIMIN_FN_EVAL(&
fFunc, vx);
148 return (
fFunc.f !=
nullptr) ? true :
false;
TRObject operator()(const T1 &t1) const
void SetDim(unsigned int n)
void SetFuncPointer(GSLMultiMinFuncPointer f)
bool IsValid()
check if function is valid (has been set)
void SetFdfPointer(GSLMultiMinFdfPointer f)
void SetDerivPointer(GSLMultiMinDfPointer f)
gsl_multimin_function_fdf * GetFunc()
void SetFunction(const FuncType &f)
Fill gsl function structure from a C++ Function class.
GSLMultiMinDerivFunctionWrapper()
gsl_multimin_function_fdf fFunc
void SetFuncPointer(GSLMultiMinFuncPointer f)
gsl_multimin_function * GetFunc()
void SetFunction(const FuncType &f)
Fill gsl function structure from a C++ Function class.
GSLMultiMinFunctionWrapper()
void SetDim(unsigned int n)
gsl_multimin_function fFunc
void(* GSLMultiMinDfPointer)(const gsl_vector *, void *, gsl_vector *)
double(* GSLMultiMinFuncPointer)(const gsl_vector *, void *)
void(* GSLMultiMinFdfPointer)(const gsl_vector *, void *, double *, gsl_vector *)
static double F(const gsl_vector *x, void *p)
static void Df(const gsl_vector *x, void *p, gsl_vector *g)
static void Fdf(const gsl_vector *x, void *p, double *f, gsl_vector *g)