Interface (abstract class) defining the function to be minimized, which has to be implemented by the user.
Definition at line 37 of file FCNBase.h.
|
| virtual | ~FCNBase ()=default |
| |
| virtual double | ErrorDef () const |
| | Error definition of the function.
|
| |
| virtual std::vector< double > | G2 (std::vector< double > const &) const |
| | Return the diagonal elements of the Hessian (second derivatives).
|
| |
| virtual std::vector< double > | Gradient (std::vector< double > const &) const |
| | Return the gradient vector of the function at the given parameter point.
|
| |
| virtual std::vector< double > | GradientWithPrevResult (std::vector< double > const ¶meters, double *, double *, double *) const |
| |
| virtual std::vector< double > | GradientWithPrevResult (std::vector< double > const ¶meters, double *previous_grad, double *previous_g2, double *previous_gstep, double) const |
| | Variant of GradientWithPrevResult() that additionally receives the already-known function value at parameters (e.g.
|
| |
| virtual GradientParameterSpace | gradParameterSpace () const |
| |
| virtual bool | HasG2 () const |
| |
| virtual bool | HasGradient () const |
| |
| virtual bool | HasHessian () const |
| |
| virtual std::vector< double > | Hessian (std::vector< double > const &) const |
| | Return the full Hessian matrix of the function.
|
| |
| virtual double | operator() (std::vector< double > const &v) const =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 bool | SecondDerivativeAlwaysVanishes (unsigned int, unsigned int) const |
| | Indicate whether the mixed second order derivative with respect to parameters i and j is identically zero, i.e.
|
| |
| 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.
|
| |
| virtual double ROOT::Minuit2::FCNBase::ErrorDef |
( |
| ) |
const |
|
inlinevirtual |
Error definition of the function.
MINUIT defines Parameter errors as the change in Parameter Value required to change the function Value by up. Normally, for chisquared fits it is 1, and for negative log likelihood, its Value is 0.5. If the user wants instead the 2-sigma errors for chisquared fits, it becomes 4, as Chi2(x+n*sigma) = Chi2(x) + n*n.
Comment a little bit better with links!!!!!!!!!!!!!!!!!
Definition at line 70 of file FCNBase.h.
| virtual double ROOT::Minuit2::FCNBase::operator() |
( |
std::vector< double > const & | v | ) |
const |
|
pure virtual |
| virtual bool ROOT::Minuit2::FCNBase::SecondDerivativeAlwaysVanishes |
( |
unsigned int | , |
|
|
unsigned int | ) const |
|
inlinevirtual |
Indicate whether the mixed second order derivative with respect to parameters i and j is identically zero, i.e.
zero for all parameter values. This can help to avoid expensive function calls in numerical Hessian evaluations (see MnHesse).
The contract for implementations:
- The indices refer to the FCN's own full (external) parameter space, including any parameters that are fixed in the minimizer. Callers that work with internal indices, like MnHesse, must translate them via MnUserTransformation::ExtOfInt() before calling this function.
- The result must be symmetric in i and j.
- Only return
true if the second derivative vanishes for any value of the parameters: the result may be cached and is used at arbitrary points in parameter space.
- The diagonal (i == j) is never queried by Minuit2, so its return value has no effect.
Reimplemented in ROOT::Minuit2::FCNAdapter.
Definition at line 163 of file FCNBase.h.
| virtual double ROOT::Minuit2::FCNBase::Up |
( |
| ) |
const |
|
pure virtual |