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 39 of file WrappedTF1.h.
Public Types | |
typedef ROOT::Math::IParamGradFunction::BaseFunc | BaseFunc |
typedef ROOT::Math::IParamGradFunction | BaseGradFunc |
typedef ROOT::Math::IGradientFunctionOneDim | 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 Types inherited from ROOT::Math::IGradientFunctionOneDim | |
typedef IBaseFunctionOneDim | BaseFunc |
typedef IGradientFunctionOneDim | BaseGrad |
Public Member Functions | |
WrappedTF1 (const WrappedTF1 &rhs) | |
Copy constructor. | |
WrappedTF1 (TF1 &f) | |
constructor from a TF1 function pointer. | |
~WrappedTF1 () override | |
Destructor (no operations). | |
WrappedTF1 & | operator= (const WrappedTF1 &rhs) |
Assignment operator. | |
interface inherited from IFunction | |
ROOT::Math::IGenFunction * | Clone () const override |
Clone the wrapper but not the original function. | |
Public Member Functions inherited from ROOT::Math::IParametricGradFunctionOneDim | |
~IParametricGradFunctionOneDim () override | |
Virtual Destructor (no operations) | |
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. | |
double | ParameterDerivative (const double *x, unsigned int ipar=0) const |
Evaluate partial derivative using cached parameter values (multi-dim like interface) | |
double | ParameterDerivative (double x, const double *p, unsigned int ipar=0) const |
Partial derivative with respect a parameter. | |
double | ParameterDerivative (double x, unsigned int ipar=0) const |
Evaluate partial derivative using cached parameter values. | |
void | ParameterGradient (const double *x, const double *p, double *grad) const |
Compatibility interface with multi-dimensional functions. | |
void | ParameterGradient (const double *x, double *grad) const |
Evaluate all derivatives using cached parameter values (multi-dim like interface) | |
void | ParameterGradient (double x, double *grad) const |
Evaluate all derivatives using cached parameter values. | |
Public Member Functions inherited from ROOT::Math::IParametricFunctionOneDim | |
double | operator() (const double *x, const double *p) const |
multidim-like interface | |
double | operator() (double x, const double *p) const |
Evaluate function at a point x and for given parameters p. | |
Public Member Functions inherited from ROOT::Math::IBaseFunctionOneDim | |
virtual | ~IBaseFunctionOneDim ()=default |
double | operator() (const double *x) const |
Evaluate the function at a point x[]. | |
double | operator() (double x) const |
Evaluate the function at a point x. | |
Public Member Functions inherited from ROOT::Math::IBaseParam | |
virtual | ~IBaseParam () |
Virtual Destructor (no operations) | |
Public Member Functions inherited from ROOT::Math::IGradientFunctionOneDim | |
double | Derivative (const double *x) const |
Compatibility method with multi-dimensional interface for partial derivative. | |
double | Derivative (double x) const |
Return the derivative of the function at a point x Use the private method DoDerivative. | |
void | FdF (const double *x, double &f, double *df) const |
Compatibility method with multi-dimensional interface for Gradient and function evaluation. | |
void | Gradient (const double *x, double *g) const |
Compatibility method with multi-dimensional interface for Gradient. | |
bool | HasGradient () const override |
interface inherited from IParamFunction | |
bool | fLinear |
bool | fPolynomial |
TF1 * | fFunc |
double | fX [1] |
const double * | Parameters () const override |
get the parameter values (return values cachen inside, those inside TF1 might be different) | |
void | SetParameters (const double *p) override |
set parameter values need to call also SetParameters in TF1 in ace some other operations (re-normalizations) are needed | |
unsigned int | NPar () const override |
return number of parameters | |
std::string | ParameterName (unsigned int i) const override |
return parameter name (this is stored in TF1) | |
void | ParameterGradient (double x, const double *par, double *grad) const override |
evaluate the derivative of the function with respect to the parameters | |
void | FdF (double x, double &f, double &deriv) const override |
calculate function and derivative at same time (required by IGradient interface) | |
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 | |
double | DoEvalPar (double x, const double *p) const override |
evaluate function passing coordinates x and vector of parameters | |
double | DoEval (double x) const override |
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency | |
double | DoDerivative (double x) const override |
return the function derivatives w.r.t. x | |
double | DoParameterDerivative (double x, const double *p, unsigned int ipar) const override |
evaluate the derivative of the function with respect to the parameters | |
#include <Math/WrappedTF1.h>
Definition at line 45 of file WrappedTF1.h.
Definition at line 44 of file WrappedTF1.h.
Definition at line 43 of file WrappedTF1.h.
ROOT::Math::WrappedTF1::WrappedTF1 | ( | TF1 & | f | ) |
constructor from a TF1 function pointer.
Definition at line 41 of file WrappedTF1.cxx.
|
inlineoverride |
Destructor (no operations).
TF1 Function pointer is not owned
Definition at line 56 of file WrappedTF1.h.
ROOT::Math::WrappedTF1::WrappedTF1 | ( | const WrappedTF1 & | rhs | ) |
Copy constructor.
Definition at line 69 of file WrappedTF1.cxx.
|
inlineoverridevirtual |
Clone the wrapper but not the original function.
Implements ROOT::Math::IBaseFunctionOneDim.
Definition at line 73 of file WrappedTF1.h.
return the function derivatives w.r.t. x
Implements ROOT::Math::IGradientFunctionOneDim.
Definition at line 110 of file WrappedTF1.cxx.
evaluate function using the cached parameter values (of TF1) re-implement for better efficiency
Reimplemented from ROOT::Math::IParametricFunctionOneDim.
Definition at line 142 of file WrappedTF1.h.
|
inlineoverrideprivatevirtual |
evaluate function passing coordinates x and vector of parameters
Implements ROOT::Math::IParametricFunctionOneDim.
Definition at line 133 of file WrappedTF1.h.
|
overrideprivatevirtual |
evaluate the derivative of the function with respect to the parameters
Implements ROOT::Math::IParametricGradFunctionOneDim.
Definition at line 119 of file WrappedTF1.cxx.
|
inlineoverridevirtual |
calculate function and derivative at same time (required by IGradient interface)
Reimplemented from ROOT::Math::IGradientFunctionOneDim.
Definition at line 116 of file WrappedTF1.h.
|
static |
get precision value used for calculating the derivative step-size
Definition at line 147 of file WrappedTF1.cxx.
|
inlineoverridevirtual |
return number of parameters
Implements ROOT::Math::IBaseParam.
Definition at line 97 of file WrappedTF1.h.
WrappedTF1 & ROOT::Math::WrappedTF1::operator= | ( | const WrappedTF1 & | rhs | ) |
Assignment operator.
Definition at line 83 of file WrappedTF1.cxx.
|
overridevirtual |
evaluate the derivative of the function with respect to the parameters
Reimplemented from ROOT::Math::IParametricGradFunctionOneDim.
Definition at line 95 of file WrappedTF1.cxx.
|
inlineoverridevirtual |
return parameter name (this is stored in TF1)
Reimplemented from ROOT::Math::IBaseParam.
Definition at line 104 of file WrappedTF1.h.
|
inlineoverridevirtual |
get the parameter values (return values cachen inside, those inside TF1 might be different)
Implements ROOT::Math::IBaseParam.
Definition at line 82 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.
|
inlineoverridevirtual |
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 90 of file WrappedTF1.h.
|
private |
Definition at line 159 of file WrappedTF1.h.
|
private |
Definition at line 157 of file WrappedTF1.h.
|
private |
Definition at line 158 of file WrappedTF1.h.
|
mutableprivate |
Definition at line 160 of file WrappedTF1.h.