27#ifndef ROOT_Math_GSLMultiFit
28#define ROOT_Math_GSLMultiFit
30#include "gsl/gsl_vector.h"
31#include "gsl/gsl_matrix.h"
32#include "gsl/gsl_multifit_nlin.h"
33#include "gsl/gsl_blas.h"
34#include "gsl/gsl_version.h"
82#if GSL_MAJOR_VERSION > 1
99 if (
this == &
rhs)
return *
this;
116#if GSL_MAJOR_VERSION > 1
128 if (
npts == 0)
return -1;
146#if GSL_MAJOR_VERSION > 1
154 if (
fSolver ==
nullptr)
return "undefined";
159 if (
fSolver ==
nullptr)
return -1;
164 const double *
X()
const {
165 if (
fSolver ==
nullptr)
return nullptr;
172 if (
fSolver ==
nullptr)
return nullptr;
173#if GSL_MAJOR_VERSION > 1
183 if (
fSolver ==
nullptr)
return nullptr;
184 static double kEpsrel = 0.0001;
185#if GSL_MAJOR_VERSION > 1
197 if (
fSolver ==
nullptr)
return -1;
205 if (
fSolver ==
nullptr)
return -1;
214 if (
g ==
nullptr)
return edm;
216 if (
c ==
nullptr)
return edm;
217 if (
fTmp ==
nullptr)
return edm;
220 if (status != 0)
return -1;
235#if GSL_MAJOR_VERSION > 1
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
wrapper to a multi-dim function withtout derivatives for multi-dimensional minimization algorithm
void SetFunction(const FuncVector &f, unsigned int nres, unsigned int npar)
Fill gsl function structure from a C++ function iterator and size and number of residuals.
gsl_multifit_function_fdf * GetFunc()
GSLMultiFit, internal class for implementing GSL non linear least square GSL fitting.
int TestGradient(double absTol) const
test gradient (ask from solver gradient vector)
GSLMultiFit(const GSLMultiFit &)
Copy constructor.
void CreateSolver(unsigned int npoints, unsigned int npar)
create the minimizer from the type and size of number of fitting points and number of parameters
~GSLMultiFit()
Destructor (no operations)
int TestDelta(double absTol, double relTol) const
test using abs and relative tolerance |dx| < absTol + relTol*|x| for every component
GSLMultiFitFunctionWrapper fFunc
gsl_multifit_fdfsolver * fSolver
GSLMultiFit & operator=(const GSLMultiFit &rhs)
Assignment operator.
const double * Gradient() const
gradient value at the minimum
GSLMultiFit(const gsl_multifit_fdfsolver_type *type=nullptr)
Default constructor No need to specify the type so far since only one solver exists so far.
const gsl_multifit_fdfsolver_type * fType
const double * CovarMatrix() const
return covariance matrix of the parameters
const double * X() const
parameter values at the minimum
int Set(const std::vector< Func > &funcVec, const double *x)
set the solver parameters
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...