3 #ifndef ROOT_TPyFitFunction
4 #define ROOT_TPyFitFunction
21 typedef _object PyObject;
24 class TPyMultiGenFunction :
public ROOT::Math::IMultiGenFunction {
27 TPyMultiGenFunction( PyObject*
self = 0 );
28 virtual ~TPyMultiGenFunction();
31 virtual ROOT::Math::IBaseFunctionMultiDim* Clone()
const
32 {
return new TPyMultiGenFunction( fPySelf ); }
33 virtual unsigned int NDim()
const;
34 virtual double DoEval(
const double* x )
const;
36 ClassDef( TPyMultiGenFunction, 1 );
40 TPyMultiGenFunction(
const TPyMultiGenFunction& src ) : ROOT::Math::IMultiGenFunction( src ) {}
41 TPyMultiGenFunction& operator=(
const TPyMultiGenFunction& ) {
return *
this; }
48 class TPyMultiGradFunction :
public ROOT::Math::IMultiGradFunction {
51 TPyMultiGradFunction( PyObject*
self = 0 );
52 virtual ~TPyMultiGradFunction();
55 virtual ROOT::Math::IBaseFunctionMultiDim* Clone()
const
56 {
return new TPyMultiGradFunction( fPySelf ); }
57 virtual unsigned int NDim()
const;
58 virtual double DoEval(
const double* x )
const;
60 virtual void Gradient(
const double* x,
double* grad )
const;
61 virtual void FdF(
const double* x,
double& f,
double* df )
const;
62 virtual double DoDerivative(
const double * x,
unsigned int icoord )
const;
64 ClassDef( TPyMultiGradFunction, 1 );
68 TPyMultiGradFunction(
const TPyMultiGradFunction& src ) :
69 ROOT::Math::IMultiGenFunction( src ), ROOT::Math::IMultiGradFunction( src ) {}
70 TPyMultiGradFunction& operator=(
const TPyMultiGradFunction& ) {
return *
this; }