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. @author Andras Zsenei and Lorenzo Moneta, Creation date: 23 Aug 2004 @see <A HREF="http://www.cern.ch/winkler/minuit/tutorial/mntutorial.pdf">MINUIT Tutorial</A> on function minimization, section 5 @see FumiliChi2FCN @see FumiliStandardChi2FCN @ingroup Minuit
vector<double>& | Gradient() |
vector<double>& | Hessian() |
virtual void | InitAndReset(unsigned int npar) |
void | SetFCNValue(double value) |
Default Constructor. Need in this case to create when implementing EvaluateAll the Gradient and Hessian vectors with the right size
{}
Constructor which initializes the class with the function provided by the user for modeling the data. @param npar the number of parameters
{}
FumiliFCNBase(const ParametricFunction& modelFCN) { fModelFunction = &modelFCN; }
{}
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 @param par vector of parameters
Return cached Value of objective function estimated previously using the FumiliFCNBase::EvaluateAll method
{ return fValue; }
Return cached Value of function Gradient estimated previously using the FumiliFCNBase::EvaluateAll method
{ return fGradient; }
Return Value of the i-th j-th element of the Hessian matrix estimated previously using the FumiliFCNBase::EvaluateAll method @param row row Index of the matrix @param col col Index of the matrix
return number of function variable (parameters) , i.e. function dimension
{ return fNumberOfParameters; }
methods to be used by the derived classes to set the values
{ fValue = value; }