Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
SimplexSeedGenerator.cxx
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
12#include "Minuit2/MnFcn.h"
13#include "Minuit2/MinimumSeed.h"
14#include "Minuit2/MnStrategy.h"
17
18namespace ROOT {
19
20namespace Minuit2 {
21
23operator()(const MnFcn &fcn, const GradientCalculator &, const MnUserParameterState &st, const MnStrategy &stra) const
24{
25 // create starting state for Simplex, which corresponds to the initial parameter values
26 // using the simple Initial gradient calculator (does not use any FCN function calls)
27 unsigned int n = st.VariableParameters();
28 const MnMachinePrecision &prec = st.Precision();
29
30 // initial starting values
32 for (unsigned int i = 0; i < n; i++)
33 x(i) = st.IntParameters()[i];
34 double fcnmin = fcn(x);
39 double dcovar = 1.;
40 for (unsigned int i = 0; i < n; i++)
41 mat(i, i) = (std::fabs(dgrad.G2()(i)) > prec.Eps2() ? 1. / dgrad.G2()(i) : 1.);
43 double edm = VariableMetricEDMEstimator().Estimate(dgrad, err);
44 MinimumState state(pa, err, dgrad, edm, fcn.NumOfCalls());
45
46 return MinimumSeed(state, st.Trafo());
47}
48
50 const MnUserParameterState &st, const MnStrategy &stra) const
51{
52 // base class interface
53 return (*this)(fcn, (const GradientCalculator &)(gc), st, stra);
54}
55
56} // namespace Minuit2
57
58} // namespace ROOT
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
interface class for gradient calculators
Class to calculate an initial estimate of the gradient.
Class describing a symmetric matrix of size n.
Definition LASymMatrix.h:45
MinimumError keeps the inv.
MinimumState keeps the information (position, Gradient, 2nd deriv, etc) after one minimization step (...
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 which holds the external user and/or internal Minuit representation of the parameters and error...
MinimumSeed operator()(const MnFcn &, const GradientCalculator &, const MnUserParameterState &, const MnStrategy &) const override
double Estimate(const FunctionGradient &, const MinimumError &) const
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...