Logo ROOT   6.13/01
Reference Guide
SimplexParameters.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 
11 
12 namespace ROOT {
13 
14  namespace Minuit2 {
15 
16 
18  // update the SimplexParameter object with a new value y = FCN(p)
19  fSimplexParameters[Jh()] = std::pair<double, MnAlgebraicVector>(y, p);
20  if(y < fSimplexParameters[Jl()].first) fJLow = Jh();
21 
22  unsigned int jh = 0;
23  for(unsigned int i = 1; i < fSimplexParameters.size(); i++) {
24  if(fSimplexParameters[i].first > fSimplexParameters[jh].first) jh = i;
25  }
26  fJHigh = jh;
27 
28  return;
29 }
30 
32  // find simplex direction (vector from big to smaller parameter points)
33  MnAlgebraicVector dirin(fSimplexParameters.size() - 1);
34  for(unsigned int i = 0; i < fSimplexParameters.size() - 1; i++) {
35  double pbig = fSimplexParameters[0].second(i), plit = pbig;
36  for(unsigned int j = 0; j < fSimplexParameters.size(); j++){
37  if(fSimplexParameters[j].second(i) < plit) plit = fSimplexParameters[j].second(i);
38  if(fSimplexParameters[j].second(i) > pbig) pbig = fSimplexParameters[j].second(i);
39  }
40  dirin(i) = pbig - plit;
41  }
42 
43  return dirin;
44 }
45 
46  } // namespace Minuit2
47 
48 } // namespace ROOT
Namespace for new ROOT classes and functions.
Definition: TFoamSampler.h:19
you should not use this method at all Int_t y
Definition: TRolke.cxx:630
std::vector< std::pair< double, MnAlgebraicVector > > fSimplexParameters
void Update(double, const MnAlgebraicVector &)
MnAlgebraicVector Dirin() const