Extension of the FCNBase for the Fumili method.
Fumili applies only to minimization problems used for fitting. The method is based on a linearization of the model function negleting second derivatives. User needs to provide the model function. The figure-of-merit describing the difference between the model function and the actual measurements has to be implemented by the user in a subclass of FumiliFCNBase. For an example see the FumiliChi2FCN and FumiliStandardChi2FCN classes.
Definition at line 46 of file FumiliFCNBase.h.
Public Member Functions | |
FumiliFCNBase () | |
Default Constructor. | |
FumiliFCNBase (unsigned int npar) | |
Constructor which initializes the class with the function provided by the user for modeling the data. | |
~FumiliFCNBase () override | |
virtual unsigned int | Dimension () |
return number of function variable (parameters) , i.e. | |
virtual void | EvaluateAll (const std::vector< double > &par)=0 |
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The resul is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods. | |
virtual const std::vector< double > & | Gradient () const |
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method. | |
std::vector< double > | Gradient (const std::vector< double > &) const override |
std::vector< double > | Hessian (const std::vector< double > &) const override |
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method. | |
virtual double | Hessian (unsigned int row, unsigned int col) const |
virtual double | Value () const |
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method. | |
Public Member Functions inherited from ROOT::Minuit2::FCNGradientBase | |
~FCNGradientBase () override | |
virtual bool | CheckGradient () const |
virtual std::vector< double > | G2 (const std::vector< double > &) const |
return second derivatives (diagonal of the Hessian matrix) | |
virtual std::vector< double > | GradientWithPrevResult (const std::vector< double > ¶meters, double *, double *, double *) const |
virtual GradientParameterSpace | gradParameterSpace () const |
virtual bool | HasG2 () const |
virtual bool | HasHessian () const |
Public Member Functions inherited from ROOT::Minuit2::FCNBase | |
~FCNBase () override | |
virtual double | ErrorDef () const |
Error definition of the function. | |
double | operator() (const std::vector< double > &v) const override=0 |
The meaning of the vector of parameters is of course defined by the user, who uses the values of those parameters to calculate their function Value. | |
virtual void | SetErrorDef (double) |
add interface to set dynamically a new error definition Re-implement this function if needed. | |
virtual double | Up () const =0 |
Error definition of the function. | |
Public Member Functions inherited from ROOT::Minuit2::GenericFunction | |
virtual | ~GenericFunction () |
Protected Member Functions | |
std::vector< double > & | Gradient () |
std::vector< double > & | Hessian () |
virtual void | InitAndReset (unsigned int npar) |
initialize and reset values of gradien and Hessian | |
void | SetFCNValue (double value) |
Private Attributes | |
std::vector< double > | fGradient |
std::vector< double > | fHessian |
unsigned int | fNumberOfParameters |
double | fValue |
#include <Minuit2/FumiliFCNBase.h>
|
inline |
Default Constructor.
Need in this case to create when implementing EvaluateAll the Gradient and Hessian vectors with the right size
Definition at line 54 of file FumiliFCNBase.h.
|
inline |
Constructor which initializes the class with the function provided by the user for modeling the data.
npar | the number of parameters |
Definition at line 65 of file FumiliFCNBase.h.
|
inlineoverride |
Definition at line 73 of file FumiliFCNBase.h.
|
inlinevirtual |
return number of function variable (parameters) , i.e.
function dimension
Definition at line 122 of file FumiliFCNBase.h.
|
pure virtual |
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p The resul is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and FumiliFCNBase::Hessian methods.
par | vector of parameters |
Implemented in ROOT::Minuit2::FumiliStandardChi2FCN, ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN, and ROOT::Minuit2::FumiliFCNAdapter< Function >.
|
inlineprotected |
Definition at line 139 of file FumiliFCNBase.h.
|
inlinevirtual |
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method.
Definition at line 98 of file FumiliFCNBase.h.
|
inlineoverridevirtual |
Implements ROOT::Minuit2::FCNGradientBase.
Definition at line 99 of file FumiliFCNBase.h.
|
inlineprotected |
Definition at line 141 of file FumiliFCNBase.h.
|
inlineoverridevirtual |
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method.
row | row Index of the matrix |
col | col Index of the matrix |
Reimplemented from ROOT::Minuit2::FCNGradientBase.
Definition at line 108 of file FumiliFCNBase.h.
|
inlinevirtual |
Definition at line 109 of file FumiliFCNBase.h.
|
inlineprotectedvirtual |
initialize and reset values of gradien and Hessian
Definition at line 129 of file FumiliFCNBase.h.
|
inlineprotected |
Definition at line 137 of file FumiliFCNBase.h.
|
inlinevirtual |
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method.
Definition at line 92 of file FumiliFCNBase.h.
|
private |
Definition at line 146 of file FumiliFCNBase.h.
|
private |
Definition at line 147 of file FumiliFCNBase.h.
|
private |
Definition at line 144 of file FumiliFCNBase.h.
|
private |
Definition at line 145 of file FumiliFCNBase.h.