27#ifndef ROOT_Math_GSLMultiFit2 
   28#define ROOT_Math_GSLMultiFit2 
   30#include "gsl/gsl_vector.h" 
   31#include "gsl/gsl_matrix.h" 
   32#include "gsl/gsl_multifit_nlinear.h" 
   33#include "gsl/gsl_blas.h" 
   34#include "gsl/gsl_version.h" 
  118      else if (
sval == 
"levenberg")
 
  120      else if (
sval == 
"marquardt")
 
  124            std::cout << 
"GSLMultiFit2::SetParameters use default scale : " 
  125                  << 
fParams.scale->name << std::endl;
 
  130      else if (
sval == 
"cholesky")
 
  132#if ((GSL_MAJOR_VERSION >= 2) && (GSL_MINOR_VERSION > 5)) 
  133      else if (
sval == 
"mcholesky")
 
  136      else if (
sval == 
"svd")
 
  140            std::cout << 
"GSLMultiFit2::SetParameters use default solver : " 
  141                  << 
fParams.solver->name << std::endl;
 
 
  162      std::cout << 
"GSLMultiFit: Parameters used for solving the non-linear fit problem" << std::endl;
 
  163      std::cout << 
"\t\t Solver for trust region   : " << 
fParams.trs->name << std::endl;
 
  164      std::cout << 
"\t\t Scaling method            : " << 
fParams.scale->name << std::endl;
 
  165      std::cout << 
"\t\t Solver method for GN step : " << 
fParams.solver->name << std::endl;
 
  166      std::cout << 
"\t\t Finite difference type    : " << 
fParams.fdtype << std::endl;
 
  167      std::cout << 
"\t\t Factor TR up              : " << 
fParams.factor_up << std::endl;
 
  168      std::cout << 
"\t\t Factor TR down            : " << 
fParams.factor_down << std::endl;
 
  169      std::cout << 
"\t\t Max allowed |a|/|v|       : " << 
fParams.avmax << std::endl;
 
  170      std::cout << 
"\t\t Step size for deriv       : " << 
fParams.h_df << std::endl;
 
  171      std::cout << 
"\t\t Step size for fvv         : " << 
fParams.h_fvv << std::endl;
 
  172      std::cout << 
"\t\t Max number of iterations  : " << 
fMaxIter << std::endl;
 
  173      std::cout << 
"\t\t Tolerance                 : " << 
fTolerance << std::endl;
 
 
  188      if (
this == &
rhs) 
return *
this;  
 
 
  202      if (
npts == 0) 
return -1;
 
 
  223      if (
fWs == 
nullptr) 
return "undefined";
 
 
  255      const double ftol = 0.0;
 
 
  277      if (params == 
nullptr) 
return;
 
  286      printf(
"iter %2zu: x = {",iter);
 
  287      for (
unsigned int i = 0; i < 
x->size; i++)
 
  294      for (
unsigned int i = 0; i < 
w->dx->size; i++)
 
  297      printf(
"        gradient  :  = {");
 
  298      for (
unsigned int i = 0; i < 
w->g->size; i++)
 
 
  314   const double * 
X()
 const {
 
  315      if (!
fWs) 
return nullptr;
 
 
  322      return (
fCov) ? 
fCov->data : 
nullptr;
 
 
  349   template<
class FuncVector>
 
  360      fFunc.params =  
const_cast<void *
>(
p);
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
winID h TVirtualViewer3D TVirtualGLPainter p
 
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
 
GSLMultiFit2, internal class for implementing GSL non linear least square GSL fitting New class imple...
 
int Set(const std::vector< Func > &funcVec, const double *x)
set the solver parameters
 
gsl_multifit_nlinear_workspace * fWs
 
const double * CovarMatrix() const
return covariance matrix of the parameters
 
const double * X() const
parameter values at the minimum
 
void SetParameters(const ROOT::Math::MinimizerOptions &minimOptions)
 
void PrintOptions() const
 
void SetFunction(const FuncVector &f, unsigned int nres, unsigned int npar)
 
~GSLMultiFit2()
Destructor (no operations)
 
GSLMultiFit2(const GSLMultiFit &)
Copy constructor.
 
int TestDelta(double, double) const
test using abs and relative tolerance |dx| < absTol + relTol*|x| for every component
 
ROOT::Math::GenAlgoOptions GetDefaultOptions() const
 
GSLMultiFit2(int type=0)
Default constructor No need to specify the type so far since only one solver exists so far.
 
static void Callback(const size_t iter, void *params, const gsl_multifit_nlinear_workspace *w)
 
const gsl_multifit_nlinear_type * fType
 
const double * Gradient() const
gradient value at the minimum
 
gsl_multifit_nlinear_fdf fFunc
 
gsl_multifit_nlinear_parameters fParams
 
int TestGradient(double) const
test gradient (ask from solver gradient vector)
 
GSLMultiFit2 & operator=(const GSLMultiFit2 &rhs)
Assignment operator.
 
Class for adapting a C++ functor class to C function pointers used by GSL MultiFit Algorithm The temp...
 
GSLMultiFit, internal class for implementing GSL non linear least square GSL fitting.
 
class implementing generic options for a numerical algorithm Just store the options in a map of strin...
 
Generic interface for defining configuration options of a numerical algorithm.
 
void SetValue(const char *name, double val)
generic methods for retrieving options
 
bool GetValue(const char *name, T &t) const
 
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...