Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Minuit2::FCNGradAdapter< Function > Class Template Reference

template<class Function>
class ROOT::Minuit2::FCNGradAdapter< Function >

template wrapped class for adapting to FCNBase signature a IGradFunction

Author
Lorenzo Moneta

Definition at line 35 of file FCNGradAdapter.h.

Public Member Functions

 FCNGradAdapter (const Function &f, double up=1.)
 
 ~FCNGradAdapter () override
 
bool CheckGradient () const override
 
std::vector< doubleG2 (const std::vector< double > &x) const override
 return second derivatives (diagonal of the Hessian matrix)
 
std::vector< doubleGradient (const std::vector< double > &v) const override
 
std::vector< doubleGradientWithPrevResult (const std::vector< double > &v, double *previous_grad, double *previous_g2, double *previous_gstep) const override
 
GradientParameterSpace gradParameterSpace () const override
 
bool HasG2 () const override
 
bool HasHessian () const override
 
std::vector< doubleHessian (const std::vector< double > &x) const override
 compute Hessian. Return Hessian as a std::vector of size(n*n)
 
double operator() (const double *v) const
 
double operator() (const std::vector< double > &v) const override
 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.
 
void SetErrorDef (double up) override
 add interface to set dynamically a new error definition Re-implement this function if needed.
 
template<class Func >
void SetG2Function (Func f)
 
template<class Func >
void SetHessianFunction (Func f)
 
double Up () const override
 Error definition of the function.
 
- Public Member Functions inherited from ROOT::Minuit2::FCNGradientBase
 ~FCNGradientBase () override
 
- Public Member Functions inherited from ROOT::Minuit2::FCNBase
 ~FCNBase () override
 
virtual double ErrorDef () const
 Error definition of the function.
 
- Public Member Functions inherited from ROOT::Minuit2::GenericFunction
virtual ~GenericFunction ()
 

Private Attributes

const FunctionfFunc
 
std::function< std::vector< double >(const std::vector< double > &)> fG2Func
 
std::vector< doublefG2Vec
 
std::vector< doublefGrad
 
std::vector< doublefHessian
 
std::function< bool(const std::vector< double > &, double *)> fHessianFunc
 
double fUp
 

#include <Minuit2/FCNGradAdapter.h>

Inheritance diagram for ROOT::Minuit2::FCNGradAdapter< Function >:
[legend]

Constructor & Destructor Documentation

◆ FCNGradAdapter()

template<class Function >
ROOT::Minuit2::FCNGradAdapter< Function >::FCNGradAdapter ( const Function f,
double  up = 1. 
)
inline

Definition at line 38 of file FCNGradAdapter.h.

◆ ~FCNGradAdapter()

template<class Function >
ROOT::Minuit2::FCNGradAdapter< Function >::~FCNGradAdapter ( )
inlineoverride

Definition at line 40 of file FCNGradAdapter.h.

Member Function Documentation

◆ CheckGradient()

template<class Function >
bool ROOT::Minuit2::FCNGradAdapter< Function >::CheckGradient ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 60 of file FCNGradAdapter.h.

◆ G2()

template<class Function >
std::vector< double > ROOT::Minuit2::FCNGradAdapter< Function >::G2 ( const std::vector< double > &  x) const
inlineoverridevirtual

return second derivatives (diagonal of the Hessian matrix)

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 71 of file FCNGradAdapter.h.

◆ Gradient()

template<class Function >
std::vector< double > ROOT::Minuit2::FCNGradAdapter< Function >::Gradient ( const std::vector< double > &  v) const
inlineoverridevirtual

Implements ROOT::Minuit2::FCNGradientBase.

Definition at line 47 of file FCNGradAdapter.h.

◆ GradientWithPrevResult()

template<class Function >
std::vector< double > ROOT::Minuit2::FCNGradAdapter< Function >::GradientWithPrevResult ( const std::vector< double > &  v,
double previous_grad,
double previous_g2,
double previous_gstep 
) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 52 of file FCNGradAdapter.h.

◆ gradParameterSpace()

template<class Function >
GradientParameterSpace ROOT::Minuit2::FCNGradAdapter< Function >::gradParameterSpace ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 62 of file FCNGradAdapter.h.

◆ HasG2()

template<class Function >
bool ROOT::Minuit2::FCNGradAdapter< Function >::HasG2 ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 108 of file FCNGradAdapter.h.

◆ HasHessian()

template<class Function >
bool ROOT::Minuit2::FCNGradAdapter< Function >::HasHessian ( ) const
inlineoverridevirtual

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 111 of file FCNGradAdapter.h.

◆ Hessian()

template<class Function >
std::vector< double > ROOT::Minuit2::FCNGradAdapter< Function >::Hessian ( const std::vector< double > &  x) const
inlineoverridevirtual

compute Hessian. Return Hessian as a std::vector of size(n*n)

Reimplemented from ROOT::Minuit2::FCNGradientBase.

Definition at line 92 of file FCNGradAdapter.h.

◆ operator()() [1/2]

template<class Function >
double ROOT::Minuit2::FCNGradAdapter< Function >::operator() ( const double v) const
inline

Definition at line 43 of file FCNGradAdapter.h.

◆ operator()() [2/2]

template<class Function >
double ROOT::Minuit2::FCNGradAdapter< Function >::operator() ( const std::vector< double > &  v) const
inlineoverridevirtual

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.

The order and the position of these parameters is strictly the one specified by the user when supplying the starting values for minimization. The starting values must be specified by the user, either via an std::vector<double> or the MnUserParameters supplied as input to the MINUIT minimizers such as VariableMetricMinimizer or MnMigrad. Later values are determined by MINUIT as it searches for the Minimum or performs whatever analysis is requested by the user.

Parameters
vfunction parameters as defined by the user.
Returns
the Value of the function.
See also
MnUserParameters
VariableMetricMinimizer
MnMigrad

Implements ROOT::Minuit2::FCNBase.

Definition at line 42 of file FCNGradAdapter.h.

◆ SetErrorDef()

template<class Function >
void ROOT::Minuit2::FCNGradAdapter< Function >::SetErrorDef ( double  )
inlineoverridevirtual

add interface to set dynamically a new error definition Re-implement this function if needed.

Reimplemented from ROOT::Minuit2::FCNBase.

Definition at line 121 of file FCNGradAdapter.h.

◆ SetG2Function()

template<class Function >
template<class Func >
void ROOT::Minuit2::FCNGradAdapter< Function >::SetG2Function ( Func  f)
inline

Definition at line 116 of file FCNGradAdapter.h.

◆ SetHessianFunction()

template<class Function >
template<class Func >
void ROOT::Minuit2::FCNGradAdapter< Function >::SetHessianFunction ( Func  f)
inline

Definition at line 119 of file FCNGradAdapter.h.

◆ Up()

template<class Function >
double ROOT::Minuit2::FCNGradAdapter< Function >::Up ( ) const
inlineoverridevirtual

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.

Implements ROOT::Minuit2::FCNBase.

Definition at line 45 of file FCNGradAdapter.h.

Member Data Documentation

◆ fFunc

template<class Function >
const Function& ROOT::Minuit2::FCNGradAdapter< Function >::fFunc
private

Definition at line 124 of file FCNGradAdapter.h.

◆ fG2Func

template<class Function >
std::function<std::vector<double>(const std::vector<double> &)> ROOT::Minuit2::FCNGradAdapter< Function >::fG2Func
private

Definition at line 130 of file FCNGradAdapter.h.

◆ fG2Vec

template<class Function >
std::vector<double> ROOT::Minuit2::FCNGradAdapter< Function >::fG2Vec
mutableprivate

Definition at line 128 of file FCNGradAdapter.h.

◆ fGrad

template<class Function >
std::vector<double> ROOT::Minuit2::FCNGradAdapter< Function >::fGrad
mutableprivate

Definition at line 126 of file FCNGradAdapter.h.

◆ fHessian

template<class Function >
std::vector<double> ROOT::Minuit2::FCNGradAdapter< Function >::fHessian
mutableprivate

Definition at line 127 of file FCNGradAdapter.h.

◆ fHessianFunc

template<class Function >
std::function<bool(const std::vector<double> &, double *)> ROOT::Minuit2::FCNGradAdapter< Function >::fHessianFunc
mutableprivate

Definition at line 131 of file FCNGradAdapter.h.

◆ fUp

template<class Function >
double ROOT::Minuit2::FCNGradAdapter< Function >::fUp
private

Definition at line 125 of file FCNGradAdapter.h.

  • math/minuit2/inc/Minuit2/FCNGradAdapter.h