Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
HessianGradientCalculator.h
Go to the documentation of this file.
1// @(#)root/minuit2:$Id$
2// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7 * *
8 **********************************************************************/
9
10#ifndef ROOT_Minuit2_HessianGradientCalculator
11#define ROOT_Minuit2_HessianGradientCalculator
12
14#include "Minuit2/MnMatrix.h"
15#include <utility>
16
17namespace ROOT {
18
19namespace Minuit2 {
20
21class MnFcn;
22class MnUserTransformation;
23class MnMachinePrecision;
24class MnStrategy;
25
26/**
27 HessianGradientCalculator: class to calculate Gradient for Hessian
28 */
29
31
32public:
34 : fFcn(fcn), fTransformation(par), fStrategy(stra)
35 {
36 }
37
39
40 FunctionGradient operator()(const MinimumParameters &) const override;
41
42 FunctionGradient operator()(const MinimumParameters &, const FunctionGradient &) const override;
43
44 std::pair<FunctionGradient, MnAlgebraicVector>
45 DeltaGradient(const MinimumParameters &, const FunctionGradient &) const;
46
47 const MnFcn &Fcn() const { return fFcn; }
48 const MnUserTransformation &Trafo() const { return fTransformation; }
49 const MnMachinePrecision &Precision() const;
50 const MnStrategy &Strategy() const { return fStrategy; }
51
52 unsigned int Ncycle() const;
53 double StepTolerance() const;
54 double GradTolerance() const;
55
56private:
57 const MnFcn &fFcn;
60};
61
62} // namespace Minuit2
63
64} // namespace ROOT
65
66#endif // ROOT_Minuit2_HessianGradientCalculator
interface class for gradient calculators
HessianGradientCalculator: class to calculate Gradient for Hessian.
const MnUserTransformation & Trafo() const
FunctionGradient operator()(const MinimumParameters &) const override
std::pair< FunctionGradient, MnAlgebraicVector > DeltaGradient(const MinimumParameters &, const FunctionGradient &) const
HessianGradientCalculator(const MnFcn &fcn, const MnUserTransformation &par, const MnStrategy &stra)
Wrapper class to FCNBase interface used internally by Minuit.
Definition MnFcn.h:30
Sets the relative floating point (double) arithmetic precision.
API class for defining four levels of strategies: low (0), medium (1), high (2), very high (>=3); act...
Definition MnStrategy.h:27
class dealing with the transformation between user specified parameters (external) and internal param...
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.