Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
Numerical2PGradientCalculator.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_Numerical2PGradientCalculator
11#define ROOT_Minuit2_Numerical2PGradientCalculator
12
13#include "Minuit2/MnConfig.h"
14
16
17#include <ROOT/RSpan.hxx>
18
19#include <vector>
20
21namespace ROOT {
22
23namespace Minuit2 {
24
25class MnFcn;
26class MnUserTransformation;
27class MnMachinePrecision;
28class MnStrategy;
29
30/**
31 class performing the numerical gradient calculation
32 */
33
35
36public:
38 : fFcn(fcn), fTransformation(par), fStrategy(stra)
39 {
40 }
41
43
44 FunctionGradient operator()(const MinimumParameters &) const override;
45
46 virtual FunctionGradient operator()(std::span<const double> params) const;
47
48 FunctionGradient operator()(const MinimumParameters &, const FunctionGradient &) const override;
49
50 const MnFcn &Fcn() const { return fFcn; }
51 const MnUserTransformation &Trafo() const { return fTransformation; }
52 const MnMachinePrecision &Precision() const;
53 const MnStrategy &Strategy() const { return fStrategy; }
54
55 unsigned int Ncycle() const;
56 double StepTolerance() const;
57 double GradTolerance() const;
58
59private:
60 const MnFcn &fFcn;
63};
64
65} // namespace Minuit2
66
67} // namespace ROOT
68
69#endif // ROOT_Minuit2_Numerical2PGradientCalculator
interface class for gradient calculators
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...
class performing the numerical gradient calculation
FunctionGradient operator()(const MinimumParameters &) const override
Numerical2PGradientCalculator(const MnFcn &fcn, const MnUserTransformation &par, const MnStrategy &stra)
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...