Logo ROOT   6.10/09
Reference Guide
FunctionMinimizer.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_FunctionMinimizer
11 #define ROOT_Minuit2_FunctionMinimizer
12 
13 
14 #include "Minuit2/MnConfig.h"
15 #include <vector>
16 
17 namespace ROOT {
18 
19  namespace Minuit2 {
20 
21 
22 class FCNBase;
23 class FCNGradientBase;
24 class FunctionMinimum;
25 
26 //_____________________________________________________________________________________
27 /** base class for function minimizers; user may give FCN or FCN with Gradient,
28  Parameter starting values and initial Error guess (sigma) (or "step size"),
29  or Parameter starting values and initial covariance matrix;
30  covariance matrix is stored in Upper triangular packed storage format,
31  e.g. the Elements in the array are arranged like
32  {a(0,0), a(0,1), a(1,1), a(0,2), a(1,2), a(2,2), ...},
33  the size is nrow*(nrow+1)/2 (see also MnUserCovariance.h);
34  */
35 
37 
38 public:
39 
40  virtual ~FunctionMinimizer() {}
41 
42  //starting values for parameters and errors
43  virtual FunctionMinimum Minimize(const FCNBase&, const std::vector<double>& par, const std::vector<double>& err, unsigned int strategy, unsigned int maxfcn, double toler) const = 0;
44 
45  //starting values for parameters and errors and FCN with Gradient
46  virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>& par, const std::vector<double>& err, unsigned int strategy, unsigned int maxfcn, double toler) const = 0;
47 
48  //starting values for parameters and covariance matrix
49  virtual FunctionMinimum Minimize(const FCNBase&, const std::vector<double>& par, unsigned int nrow, const std::vector<double>& cov, unsigned int strategy, unsigned int maxfcn, double toler) const = 0;
50 
51  //starting values for parameters and covariance matrix and FCN with Gradient
52  virtual FunctionMinimum Minimize(const FCNGradientBase&, const std::vector<double>& par, unsigned int nrow, const std::vector<double>& cov, unsigned int strategy, unsigned int maxfcn, double toler) const = 0;
53 
54 };
55 
56  } // namespace Minuit2
57 
58 } // namespace ROOT
59 
60 #endif // ROOT_Minuit2_FunctionMinimizer
double par[1]
Definition: unuranDistr.cxx:38
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
Extension of the FCNBase for providing the analytical Gradient of the function.
virtual FunctionMinimum Minimize(const FCNBase &, const std::vector< double > &par, const std::vector< double > &err, unsigned int strategy, unsigned int maxfcn, double toler) const =0
class holding the full result of the minimization; both internal and external (MnUserParameterState) ...
Interface (abstract class) defining the function to be minimized, which has to be implemented by the ...
Definition: FCNBase.h:47
const int strategy
Definition: testNdimFit.cxx:46
base class for function minimizers; user may give FCN or FCN with Gradient, Parameter starting values...