Class to Wrap a ROOT Function class (like TF1) in a IParamFunction interface of one dimensions to be used in the ROOT::Math numerical algorithms The wrapper does not own bby default the TF1 pointer, so it assumes it exists during the wrapper lifetime.
The class from ROOT version 6.03 does not contain anymore a copy of the parameters. The parameters are stored in the TF1 class.
Definition at line 37 of file WrappedTF1.h.
Public Types | |
typedef ROOT::Math::IParamGradFunction::BaseFunc | BaseFunc |
typedef ROOT::Math::IParamGradFunction | BaseGradFunc |
typedef ROOT::Math::IGradientOneDim | IGrad |
Public Types inherited from ROOT::Math::IParametricGradFunctionOneDim | |
typedef IParametricFunctionOneDim::BaseFunc | BaseFunc |
typedef IGradientFunctionOneDim | BaseGradFunc |
typedef IParametricFunctionOneDim | BaseParamFunc |
Public Types inherited from ROOT::Math::IParametricFunctionOneDim | |
typedef IBaseFunctionOneDim | BaseFunc |
Public Types inherited from ROOT::Math::IBaseFunctionOneDim | |
typedef IBaseFunctionOneDim | BaseFunc |
Public Member Functions | |
WrappedTF1 (const WrappedTF1 &rhs) | |
Copy constructor. More... | |
WrappedTF1 (TF1 &f) | |
constructor from a TF1 function pointer. More... | |
virtual | ~WrappedTF1 () |
Destructor (no operations). More... | |
WrappedTF1 & | operator= (const WrappedTF1 &rhs) |
Assignment operator. More... | |
interface inherited from IFunction | |
ROOT::Math::IGenFunction * | Clone () const |
Clone the wrapper but not the original function. More... | |
Public Member Functions inherited from ROOT::Math::IParametricGradFunctionOneDim | |
virtual | ~IParametricGradFunctionOneDim () |
Virtual Destructor (no operations) More... | |
double | ParameterDerivative (const double *x, const double *p, unsigned int ipar=0) const |
Partial derivative with respect a parameter Compatibility interface with multi-dimensional functions. More... | |
double | ParameterDerivative (const double *x, unsigned int ipar=0) const |
Evaluate partial derivative using cached parameter values (multi-dim like interface) More... | |
double | ParameterDerivative (double x, const double *p, unsigned int ipar=0) const |
Partial derivative with respect a parameter. More... | |
double | ParameterDerivative (double x, unsigned int ipar=0) const |
Evaluate partial derivative using cached parameter values. More... | |
void | ParameterGradient (const double *x, const double *p, double *grad) const |
Compatibility interface with multi-dimensional functions. More... | |
void | ParameterGradient (const double *x, double *grad) const |
Evaluate all derivatives using cached parameter values (multi-dim like interface) More... | |
virtual void | ParameterGradient (double x, const double *p, double *grad) const |
Evaluate the derivatives of the function with respect to the parameters at a point x. More... | |
void | ParameterGradient (double x, double *grad) const |
Evaluate all derivatives using cached parameter values. More... | |
Public Member Functions inherited from ROOT::Math::IParametricFunctionOneDim | |
double | operator() (const double *x, const double *p) const |
multidim-like interface More... | |
double | operator() (double x, const double *p) const |
Evaluate function at a point x and for given parameters p. More... | |
Public Member Functions inherited from ROOT::Math::IBaseFunctionOneDim | |
IBaseFunctionOneDim () | |
virtual | ~IBaseFunctionOneDim () |
virtual destructor More... | |
virtual IBaseFunctionOneDim * | Clone () const =0 |
Clone a function. More... | |
double | operator() (const double *x) const |
Evaluate the function at a point x[]. More... | |
double | operator() (double x) const |
Evaluate the function at a point x Use the a pure virtual private method DoEval which must be implemented by sub-classes. More... | |
Public Member Functions inherited from ROOT::Math::IBaseParam | |
virtual | ~IBaseParam () |
Virtual Destructor (no operations) More... | |
virtual unsigned int | NPar () const =0 |
Return the number of Parameters. More... | |
virtual std::string | ParameterName (unsigned int i) const |
Return the name of the i-th parameter (starting from zero) Overwrite if want to avoid the default name ("Par_0, Par_1, ...") More... | |
virtual const double * | Parameters () const =0 |
Access the parameter values. More... | |
virtual void | SetParameters (const double *p)=0 |
Set the parameter values. More... | |
Public Member Functions inherited from ROOT::Math::IGradientOneDim | |
virtual | ~IGradientOneDim () |
virtual destructor More... | |
double | Derivative (const double *x) const |
Compatibility method with multi-dimensional interface for partial derivative. More... | |
double | Derivative (double x) const |
Return the derivative of the function at a point x Use the private method DoDerivative. More... | |
void | FdF (const double *x, double &f, double *df) const |
Compatibility method with multi-dimensional interface for Gradient and function evaluation. More... | |
virtual void | FdF (double x, double &f, double &df) const =0 |
Optimized method to evaluate at the same time the function value and derivative at a point x. More... | |
void | Gradient (const double *x, double *g) const |
Compatibility method with multi-dimensional interface for Gradient. More... | |
interface inherited from IParamFunction | |
bool | fLinear |
bool | fPolynomial |
TF1 * | fFunc |
double | fX [1] |
const double * | Parameters () const |
get the parameter values (return values cachen inside, those inside TF1 might be different) More... | |
void | SetParameters (const double *p) |
set parameter values need to call also SetParameters in TF1 in ace some other operations (re-normalizations) are needed More... | |
unsigned int | NPar () const |
return number of parameters More... | |
std::string | ParameterName (unsigned int i) const |
return parameter name (this is stored in TF1) More... | |
void | ParameterGradient (double x, const double *par, double *grad) const |
evaluate the derivative of the function with respect to the parameters More... | |
void | FdF (double x, double &f, double &deriv) const |
calculate function and derivative at same time (required by IGradient interface) More... | |
static void | SetDerivPrecision (double eps) |
precision value used for calculating the derivative step-size h = eps * |x|. More... | |
static double | GetDerivPrecision () |
get precision value used for calculating the derivative step-size More... | |
double | DoEvalPar (double x, const double *p) const |
evaluate function passing coordinates x and vector of parameters More... | |
double | DoEval (double x) const |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency More... | |
double | DoDerivative (double x) const |
return the function derivatives w.r.t. x More... | |
double | DoParameterDerivative (double x, const double *p, unsigned int ipar) const |
evaluate the derivative of the function with respect to the parameters More... | |
#include <Math/WrappedTF1.h>
Definition at line 43 of file WrappedTF1.h.
Definition at line 42 of file WrappedTF1.h.
Definition at line 41 of file WrappedTF1.h.
ROOT::Math::WrappedTF1::WrappedTF1 | ( | TF1 & | f | ) |
constructor from a TF1 function pointer.
Definition at line 41 of file WrappedTF1.cxx.
|
inlinevirtual |
Destructor (no operations).
TF1 Function pointer is not owned
Definition at line 54 of file WrappedTF1.h.
ROOT::Math::WrappedTF1::WrappedTF1 | ( | const WrappedTF1 & | rhs | ) |
Copy constructor.
Definition at line 69 of file WrappedTF1.cxx.
|
inlinevirtual |
Clone the wrapper but not the original function.
Implements ROOT::Math::IBaseFunctionOneDim.
Definition at line 71 of file WrappedTF1.h.
|
privatevirtual |
return the function derivatives w.r.t. x
Implements ROOT::Math::IGradientOneDim.
Definition at line 110 of file WrappedTF1.cxx.
|
inlineprivatevirtual |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency
Reimplemented from ROOT::Math::IParametricFunctionOneDim.
Definition at line 140 of file WrappedTF1.h.
|
inlineprivatevirtual |
evaluate function passing coordinates x and vector of parameters
Implements ROOT::Math::IParametricFunctionOneDim.
Definition at line 131 of file WrappedTF1.h.
|
privatevirtual |
evaluate the derivative of the function with respect to the parameters
Implements ROOT::Math::IParametricGradFunctionOneDim.
Definition at line 119 of file WrappedTF1.cxx.
|
inlinevirtual |
calculate function and derivative at same time (required by IGradient interface)
Implements ROOT::Math::IGradientOneDim.
Definition at line 114 of file WrappedTF1.h.
|
static |
get precision value used for calculating the derivative step-size
Definition at line 147 of file WrappedTF1.cxx.
|
inlinevirtual |
return number of parameters
Implements ROOT::Math::IBaseParam.
Definition at line 95 of file WrappedTF1.h.
WrappedTF1 & ROOT::Math::WrappedTF1::operator= | ( | const WrappedTF1 & | rhs | ) |
Assignment operator.
Definition at line 83 of file WrappedTF1.cxx.
|
virtual |
evaluate the derivative of the function with respect to the parameters
Reimplemented from ROOT::Math::IParametricGradFunctionOneDim.
Definition at line 95 of file WrappedTF1.cxx.
|
inlinevirtual |
return parameter name (this is stored in TF1)
Reimplemented from ROOT::Math::IBaseParam.
Definition at line 102 of file WrappedTF1.h.
|
inlinevirtual |
get the parameter values (return values cachen inside, those inside TF1 might be different)
Implements ROOT::Math::IBaseParam.
Definition at line 80 of file WrappedTF1.h.
|
static |
precision value used for calculating the derivative step-size h = eps * |x|.
The default is 0.001, give a smaller in case function changes rapidly
Definition at line 142 of file WrappedTF1.cxx.
|
inlinevirtual |
set parameter values need to call also SetParameters in TF1 in ace some other operations (re-normalizations) are needed
Implements ROOT::Math::IBaseParam.
Definition at line 88 of file WrappedTF1.h.
|
private |
Definition at line 157 of file WrappedTF1.h.
|
private |
Definition at line 155 of file WrappedTF1.h.
|
private |
Definition at line 156 of file WrappedTF1.h.
|
mutableprivate |
Definition at line 158 of file WrappedTF1.h.