WrappedParamGenFunction class to wrap any multi-dimensional function implementing the operator()(const double * ) in an interface-like IParamFunction, by fixing some of the variables and define them as parameters.
i.e. transform any multi-dim function in a parametric function
Definition at line 140 of file WrappedParamFunction.h.
Public Member Functions | |
WrappedParamFunctionGen (const FuncPtr &func, unsigned int dim, unsigned int npar, const double *par, const unsigned int *idx) | |
Constructor a wrapped function from a pointer to a generic callable object implemention operator()(const double *), the new function dimension, the number of parameters (number of fixed variables) and an array specifying the index of the fixed variables which becames parameters in the new API. | |
WrappedParamFunctionGen (FuncPtr &func, unsigned int dim, unsigned int npar, const double *par, const unsigned int *idx) | |
Constructor as before but taking now a non - const pointer to a callable object. | |
IMultiGenFunction * | Clone () const |
clone the function | |
unsigned int | NDim () const |
Retrieve the dimension of the function. | |
unsigned int | NPar () const |
Return the number of Parameters. | |
const double * | Parameters () const |
Access the parameter values. | |
void | SetParameters (const double *p) |
Set the parameter values. | |
Public Member Functions inherited from ROOT::Math::IParametricFunctionMultiDimTempl< double > | |
double | operator() (const double *x) const |
double | operator() (const double *x, const double *p) const |
Evaluate function at a point x and for given parameters p. | |
Public Member Functions inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
IBaseFunctionMultiDimTempl () | |
virtual | ~IBaseFunctionMultiDimTempl () |
virtual destructor | |
T | operator() (const T *x) const |
Evaluate the function at a point x[]. | |
Public Member Functions inherited from ROOT::Math::IBaseParam | |
virtual | ~IBaseParam () |
Virtual Destructor (no operations) | |
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, ...") | |
Private Member Functions | |
WrappedParamFunctionGen (const WrappedParamFunctionGen &) | |
double | DoEval (const double *x) const |
evaluate the function (re-implement for being more efficient) | |
double | DoEvalPar (const double *x, const double *p) const |
implement the required IParamFunction interface | |
void | DoInit () |
WrappedParamFunctionGen & | operator= (const WrappedParamFunctionGen &) |
void | SetParValues (unsigned int npar, const double *p) const |
Private Attributes | |
unsigned int | fDim |
FuncPtr | fFunc |
std::vector< double > | fParams |
std::vector< unsigned int > | fParIndices |
std::vector< unsigned int > | fVarIndices |
std::vector< double > | fX |
Additional Inherited Members | |
Public Types inherited from ROOT::Math::IParametricFunctionMultiDimTempl< double > | |
typedef IBaseFunctionMultiDimTempl< double > | BaseFunc |
Public Types inherited from ROOT::Math::IBaseFunctionMultiDimTempl< T > | |
typedef T | BackendType |
typedef IBaseFunctionMultiDimTempl< T > | BaseFunc |
#include <Math/WrappedParamFunction.h>
|
inline |
Constructor a wrapped function from a pointer to a generic callable object implemention operator()(const double *), the new function dimension, the number of parameters (number of fixed variables) and an array specifying the index of the fixed variables which becames parameters in the new API.
Definition at line 149 of file WrappedParamFunction.h.
|
inline |
Constructor as before but taking now a non - const pointer to a callable object.
This constructor is needed in the case FuncPtr is a std::unique_ptr which has a copy ctor taking non const objects
Definition at line 163 of file WrappedParamFunction.h.
|
private |
|
inlinevirtual |
clone the function
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 174 of file WrappedParamFunction.h.
|
inlineprivatevirtual |
evaluate the function (re-implement for being more efficient)
Reimplemented from ROOT::Math::IParametricFunctionMultiDimTempl< double >.
Definition at line 210 of file WrappedParamFunction.h.
|
inlineprivatevirtual |
implement the required IParamFunction interface
Implements ROOT::Math::IParametricFunctionMultiDimTempl< double >.
Definition at line 237 of file WrappedParamFunction.h.
|
inlineprivate |
Definition at line 243 of file WrappedParamFunction.h.
|
inlinevirtual |
Retrieve the dimension of the function.
Implements ROOT::Math::IBaseFunctionMultiDimTempl< T >.
Definition at line 197 of file WrappedParamFunction.h.
|
inlinevirtual |
Return the number of Parameters.
Implements ROOT::Math::IBaseParam.
Definition at line 195 of file WrappedParamFunction.h.
|
private |
|
inlinevirtual |
Access the parameter values.
Implements ROOT::Math::IBaseParam.
Definition at line 185 of file WrappedParamFunction.h.
|
inlinevirtual |
Set the parameter values.
p | vector of doubles containing the parameter values. |
to be defined: can user change number of params ? At the moment no.
Implements ROOT::Math::IBaseParam.
Definition at line 189 of file WrappedParamFunction.h.
|
inlineprivate |
Definition at line 278 of file WrappedParamFunction.h.
|
private |
Definition at line 288 of file WrappedParamFunction.h.
|
mutableprivate |
Definition at line 287 of file WrappedParamFunction.h.
|
private |
Definition at line 289 of file WrappedParamFunction.h.
|
private |
Definition at line 291 of file WrappedParamFunction.h.
|
private |
Definition at line 290 of file WrappedParamFunction.h.
|
mutableprivate |
Definition at line 292 of file WrappedParamFunction.h.