34#ifndef ROOT_Math_GSLMultiMinFunctionAdapter
35#define ROOT_Math_GSLMultiMinFunctionAdapter
37#include "gsl/gsl_vector.h"
65 template<
class UserFunc>
68 static double F(
const gsl_vector *
x,
void *
p) {
70 UserFunc * function =
reinterpret_cast< UserFunc *
> (
p);
72 return (*function)(
x->data );
76 static void Df(
const gsl_vector *
x,
void *
p, gsl_vector *
g) {
78 UserFunc * function =
reinterpret_cast< UserFunc *
> (
p);
79 (*function).Gradient(
x->data,
g->data );
83 static void Fdf(
const gsl_vector *
x,
void *
p,
double *
f, gsl_vector *
g ) {
85 UserFunc * function =
reinterpret_cast< UserFunc *
> (
p);
89 (*function).FdF(
x->data, *
f,
g->data);
winID h TVirtualViewer3D TVirtualGLPainter p
Namespace for new Math classes and functions.
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
Class for adapting any multi-dimension C++ functor class to C function pointers used by GSL MultiMin ...
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)