27 static double gEPs = 0.001;
35 TF1 *fnew = (
TF1 *) funcToCopy->IsA()->New();
36 funcToCopy->
Copy(*fnew);
62 while (
fLinear && ip < fFunc->GetNpar()) {
74 fPolynomial(rhs.fPolynomial),
86 if (
this == &rhs)
return *
this;
104 unsigned int np =
NPar();
105 for (
unsigned int i = 0; i < np; ++i)
131 return std::pow(
x,
static_cast<int>(ipar));
138 return (
const_cast<TFormula *
>(df))->Eval(
x) ;
double pow(double, double)
Interface (abstract class) for generic functions objects of one-dimension Provides a method to evalua...
Specialized Gradient interface(abstract class) for one dimensional functions It provides a method to ...
Interface (abstract class) for parametric one-dimensional gradient functions providing in addition to...
Class to Wrap a ROOT Function class (like TF1) in a IParamFunction interface of one dimensions to be ...
WrappedTF1 & operator=(const WrappedTF1 &rhs)
Assignment operator.
WrappedTF1(TF1 &f)
constructor from a TF1 function pointer.
static void SetDerivPrecision(double eps)
precision value used for calculating the derivative step-size h = eps * |x|.
static double GetDerivPrecision()
get precision value used for calculating the derivative step-size
unsigned int NPar() const
return number of parameters
void ParameterGradient(double x, const double *par, double *grad) const
evaluate the derivative of the function with respect to the parameters
double DoParameterDerivative(double x, const double *p, unsigned int ipar) const
evaluate the derivative of the function with respect to the parameters
double DoDerivative(double x) const
return the function derivatives w.r.t. x
virtual Int_t GetNumber() const
virtual void Copy(TObject &f1) const
Copy this F1 to a new F1.
virtual Double_t GradientPar(Int_t ipar, const Double_t *x, Double_t eps=0.01)
Compute the gradient (derivative) wrt a parameter ipar.
virtual Double_t Derivative(Double_t x, Double_t *params=0, Double_t epsilon=0.001) const
Returns the first derivative of the function at point x, computed by Richardson's extrapolation metho...
virtual void InitArgs(const Double_t *x, const Double_t *params)
Initialize parameters addresses.
TMethodCall * GetMethodCall() const
virtual Bool_t IsLinear() const
virtual void SetParameters(const Double_t *params)
virtual const TObject * GetLinearPart(Int_t i) const
Namespace for new Math classes and functions.
double DerivPrecision(double eps)
TF1 * CopyTF1Ptr(const TF1 *funcToCopy)