CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
cmsmath::OneDimMinimizer Class Reference

#include <SequentialMinimizer.h>

Inheritance diagram for cmsmath::OneDimMinimizer:
cmsmath::SequentialMinimizer::Worker

Public Types

enum  ImproveRet { Unchanged = 2, Done = 1, NotDone = 0 }
 

Public Member Functions

const char * cname () const
 
ImproveRet improve (int steps=1, double ytol=0, double xtol=0, bool force=true)
 
void init (const MinimizerContext &ctx, unsigned int idx, double xmin, double xmax, double xstep, const std::string &name)
 
void initDefault (const MinimizerContext &ctx, unsigned int idx)
 
void initUnbound (const MinimizerContext &ctx, unsigned int idx, double xstep, const std::string &name)
 
bool isInit () const
 
double max () const
 
double min () const
 
bool minimize (int steps=1, double ytol=0, double xtol=0)
 
void moveTo (double x)
 
const std::string & name () const
 
 OneDimMinimizer ()
 
 OneDimMinimizer (const MinimizerContext &ctx, unsigned int idx)
 
 OneDimMinimizer (const MinimizerContext &ctx, unsigned int idx, double xmin, double xmax, double xstep, const std::string &name)
 
double step () const
 

Private Member Functions

void assign (int to, int from)
 
bool doloop (int steps, double ytol, double xtol)
 
double eval ()
 
double eval (double x)
 
void goldenBisection ()
 do the golden bisection More...
 
double parabolaFit ()
 do the parabola fit More...
 
bool parabolaStep ()
 do the parabola fit More...
 
void reseek ()
 
void seek ()
 search for a triplet of points bracketing the maximum. return false in case of errors More...
 
double & x ()
 evaluate function at x More...
 

Private Attributes

const MinimizerContextf_
 
unsigned int idx_
 
std::string name_
 
double xi_ [3]
 
double xmax_
 
double xmin_
 
double xstep_
 
double yi_ [3]
 

Detailed Description

Definition at line 26 of file SequentialMinimizer.h.

Member Enumeration Documentation

improve minimum, re-evaluating points (other parameters of the function might have changed) return value is: 0: minimum changed, and did not converge there yet 1: minimum changed, but did converge to it 2: minimum did not change significantly in case 2, then the final position is NOT changed at all. force = true will instead force the update even if it's trivial

Enumerator
Unchanged 
Done 
NotDone 

Definition at line 63 of file SequentialMinimizer.h.

Constructor & Destructor Documentation

cmsmath::OneDimMinimizer::OneDimMinimizer ( )
inline

Definition at line 28 of file SequentialMinimizer.h.

28 : f_(0), idx_(0) {}
const MinimizerContext * f_
cmsmath::OneDimMinimizer::OneDimMinimizer ( const MinimizerContext ctx,
unsigned int  idx 
)
inline

Definition at line 29 of file SequentialMinimizer.h.

29  :
30  f_(&ctx), idx_(idx) {}
const MinimizerContext * f_
cmsmath::OneDimMinimizer::OneDimMinimizer ( const MinimizerContext ctx,
unsigned int  idx,
double  xmin,
double  xmax,
double  xstep,
const std::string &  name 
)
inline

Definition at line 31 of file SequentialMinimizer.h.

31  :
32  f_(&ctx), idx_(idx), name_(name), xmin_(xmin), xmax_(xmax), xstep_(xstep) {}
const std::string & name() const
const MinimizerContext * f_

Member Function Documentation

void cmsmath::OneDimMinimizer::assign ( int  to,
int  from 
)
inlineprivate

Definition at line 106 of file SequentialMinimizer.h.

References Capri::details::from(), xi_, and yi_.

106 { xi_[to] = xi_[from]; yi_[to] = yi_[from]; }
static std::string from(" from ")
const char* cmsmath::OneDimMinimizer::cname ( ) const
inline

Definition at line 35 of file SequentialMinimizer.h.

References name_.

Referenced by cmsmath::SequentialMinimizer::improve().

35 { return name_.c_str(); }
bool cmsmath::OneDimMinimizer::doloop ( int  steps,
double  ytol,
double  xtol 
)
private

basic loop return false if ended steps, true if reached tolerance

Definition at line 113 of file SequentialMinimizer.cc.

References DEBUG_ODM_printf, i, max(), and relval_steps::steps.

114 {
115  if (steps <= 0) steps = 100;
116  for (int i = 0; i < steps; ++i) {
117  if (xtol > 0 && (xi_[2] - xi_[0]) < xtol) {
118  return true;
119  }
120  goldenBisection();
121  if (ytol > 0 && (std::max(yi_[2],yi_[0]) - yi_[1]) < ytol) {
122  DEBUG_ODM_printf("ODM: intermediate ytol for %s: ymin %.8f, ymax %.8f, diff %.8f\n", name_.c_str(), yi_[1], std::max(yi_[2],yi_[0]), std::max(yi_[2],yi_[0]) - yi_[1]);
123  return true;
124  }
125  DEBUG_ODM_printf("ODM: step %d/%d done for %s: ymin %.8f, ymax %.8f, diff %.8f\n", i+1, steps, name_.c_str(), yi_[1], std::max(yi_[2],yi_[0]), std::max(yi_[2],yi_[0]) - yi_[1]);
126  DEBUG_ODM_printf("ODM: %s x = [%.4f, %.4f, %.4f], y = [%.4f, %.4f, %.4f]\n", name_.c_str(), xi_[0], xi_[1], xi_[2], yi_[0], yi_[1], yi_[2]);
127  }
128 
129  return false;
130 }
int i
Definition: DBlmapReader.cc:9
const T & max(const T &a, const T &b)
void goldenBisection()
do the golden bisection
#define DEBUG_ODM_printf
double cmsmath::OneDimMinimizer::eval ( )
inlineprivate

Definition at line 103 of file SequentialMinimizer.h.

References cmsmath::MinimizerContext::eval(), and f_.

103 { return f_->eval(); }
const MinimizerContext * f_
double cmsmath::OneDimMinimizer::eval ( double  x)
inlineprivate

Definition at line 104 of file SequentialMinimizer.h.

References cmsmath::MinimizerContext::cleanEval(), f_, and idx_.

104 { return f_->cleanEval(idx_, x); }
double cleanEval(unsigned int i, double xi) const
double & x()
evaluate function at x
const MinimizerContext * f_
void cmsmath::OneDimMinimizer::goldenBisection ( )
private

do the golden bisection

pre-condition: the endpoint equal to x1 is not the highest

Definition at line 199 of file SequentialMinimizer.cc.

References assign.

200 {
201  //pre-condition: always a sorted interval
202  assert(xi_[0] < xi_[2]);
203  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
204  // if midpoint is not not one of the extremes, it's not higher than that extreme
205  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
206  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
207  if (xi_[0] == xi_[1] || xi_[1] == xi_[2]) {
208  int isame = (xi_[0] == xi_[1] ? 0 : 2);
210  assert(yi_[isame] <= yi_[2-isame]);
211  xi_[1] = 0.5*(xi_[0]+xi_[2]);
212  yi_[1] = eval(xi_[1]);
213  if (yi_[1] < yi_[isame]) {
214  // maximum is in the interval-
215  // leave as is, next bisection steps will find it
216  } else {
217  // maximum remains on the boundary, leave both points there
218  assign(2-isame, 1);
219  assign(1, isame);
220  }
221  } else {
222  int inear = 2, ifar = 0;
223  if (xi_[2]-xi_[1] > xi_[1] - xi_[0]) {
224  inear = 0, ifar = 2;
225  } else {
226  inear = 2, ifar = 0;
227  }
228  double xc = xi_[1]*GOLD_R1 + xi_[ifar]*GOLD_R2;
229  double yc = eval(xc);
230  //DEBUG_ODM_printf("ODM: goldenBisection:\n\t\tfar = (%.2f,%.8f)\n\t\tnear = (%.2f,%.8f)\n\t\tcenter = (%.2f,%.8f)\n\t\tnew = (%.2f,%.8f)\n",
231  // xi_[ifar], yi_[ifar], xi_[inear], yi_[inear], xi_[1], yi_[1], xc, yc);
232  if (yc < yi_[1]) { // then use 1, c, far
233  assign(inear, 1);
234  xi_[1] = xc; yi_[1] = yc;
235  } else { // then use c, 1, near
236  xi_[ifar] = xc; yi_[ifar] = yc;
237  }
238  }
239  //post-condition: always a sorted interval
240  assert(xi_[0] < xi_[2]);
241  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
242  // if midpoint is not not one of the extremes, it's not higher than that extreme
243  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
244  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
245 
246 }
void assign(int to, int from)
cmsmath::OneDimMinimizer::ImproveRet cmsmath::OneDimMinimizer::improve ( int  steps = 1,
double  ytol = 0,
double  xtol = 0,
bool  force = true 
)

Definition at line 47 of file SequentialMinimizer.cc.

References DEBUG_ODM_printf, run_regression::done, max(), and vdt::x.

Referenced by cmsmath::SequentialMinimizer::improve().

48 {
49  double x0 = x();
50  if (x0 < xi_[0] || x0 > xi_[2]) {
51  // could happen if somebody outside this loop modifies some parameters
52  DEBUG_ODM_printf("ODM: ALERT: variable %s outside bounds x = [%.4f, %.4f, %.4f], x0 = %.4f\n", name_.c_str(), xi_[0], xi_[1], xi_[2], x0);
53  x0 = x() = xi_[1];
54  } else {
55  xi_[1] = x0;
56  }
57  double y0 = eval();
58  yi_[1] = y0;
59  yi_[0] = eval(xi_[0]);
60  yi_[2] = eval(xi_[2]);
61  if (xtol == 0) xtol = (fabs(xi_[1])+XTOL)*XTOL;
62 
63  DEBUG_ODM_printf("ODM: start of improve %s x = [%.4f, %.4f, %.4f], y = [%.4f, %.4f, %.4f]\n", name_.c_str(), xi_[0], xi_[1], xi_[2], yi_[0], yi_[1], yi_[2]);
64 
65  if (yi_[1] <= yi_[0] && yi_[1] <= yi_[2]) {
66  if (ytol > 0 && (std::max(yi_[2],yi_[0]) - yi_[1]) < ytol) {
67  DEBUG_ODM_printf("ODM: immediate ytol for %s: ymin %.8f, ymax %.8f, diff %.8f\n", name_.c_str(), yi_[1], std::max(yi_[2],yi_[0]), std::max(yi_[2],yi_[0]) - yi_[1]);
68  if (!force || parabolaStep()) return Unchanged;
69  }
70  if (xtol > 0 && (xi_[2] - xi_[0]) < xtol) {
71  DEBUG_ODM_printf("ODM: immediate xtol for %s: xmin %.8f, xmax %.8f, diff %.8f\n", name_.c_str(), xi_[0], xi_[2], xi_[2] - xi_[0]);
72  if (!force || parabolaStep()) return Unchanged;
73  }
74  } else {
75  reseek();
76  }
77 
78  //post-condition: always a sorted interval
79  assert(xi_[0] < xi_[2]);
80  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
81  // if midpoint is not not one of the extremes, it's not higher than that extreme
82  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
83  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
84 
85  bool done = doloop(steps,ytol,xtol);
86  parabolaStep();
87 
88  //post-condition: always a sorted interval
89  assert(xi_[0] < xi_[2]);
90  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
91  // if midpoint is not not one of the extremes, it's not higher than that extreme
92  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
93  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
94 
95 
96  if (ytol > 0 && fabs(yi_[1] - y0) < ytol) {
97  DEBUG_ODM_printf("ODM: final ytol for %s: ymin(old) %.8f, ymin(new) %.8f, diff %.8f\n", name_.c_str(), y0, yi_[1], y0 -yi_[1]);
98  if (!force) x() = x0;
99  return Unchanged;
100  }
101 
102  if (xtol > 0 && fabs(xi_[1] - x0) < xtol) {
103  x() = (force ? xi_[1] : x0);
104  return Unchanged;
105  }
106  DEBUG_ODM_printf("ODM: doloop for %s is %s\n", name_.c_str(), done ? "Done" : "NotDone");
107  DEBUG_ODM_printf("ODM: end of improve %s x = [%.4f, %.4f, %.4f], y = [%.4f, %.4f, %.4f]\n", name_.c_str(), xi_[0], xi_[1], xi_[2], yi_[0], yi_[1], yi_[2]);
108  x() = xi_[1];
109  xstep_ = xi_[2] - xi_[0];
110  return done ? Done : NotDone;
111 }
const T & max(const T &a, const T &b)
bool doloop(int steps, double ytol, double xtol)
bool parabolaStep()
do the parabola fit
double & x()
evaluate function at x
#define DEBUG_ODM_printf
void cmsmath::OneDimMinimizer::init ( const MinimizerContext ctx,
unsigned int  idx,
double  xmin,
double  xmax,
double  xstep,
const std::string &  name 
)
inline

Definition at line 41 of file SequentialMinimizer.h.

References f_, idx_, name(), name_, xmax_, xmin_, and xstep_.

Referenced by initDefault(), and initUnbound().

41  {
42  f_ = &ctx; idx_ = idx;
43  xmin_ = xmin; xmax_ = xmax; xstep_ = xstep;
44  name_ = name;
45  }
const std::string & name() const
const MinimizerContext * f_
void cmsmath::OneDimMinimizer::initDefault ( const MinimizerContext ctx,
unsigned int  idx 
)

Definition at line 30 of file SequentialMinimizer.cc.

References infinity, and init().

30  {
32 }
void init(const MinimizerContext &ctx, unsigned int idx, double xmin, double xmax, double xstep, const std::string &name)
const double infinity
void cmsmath::OneDimMinimizer::initUnbound ( const MinimizerContext ctx,
unsigned int  idx,
double  xstep,
const std::string &  name 
)
inline

Definition at line 46 of file SequentialMinimizer.h.

References infinity, and init().

46  {
48  }
void init(const MinimizerContext &ctx, unsigned int idx, double xmin, double xmax, double xstep, const std::string &name)
const double infinity
const std::string & name() const
bool cmsmath::OneDimMinimizer::isInit ( ) const
inline

Definition at line 40 of file SequentialMinimizer.h.

References f_.

Referenced by cmsmath::SequentialMinimizer::minimize().

40 { return f_ != 0; }
const MinimizerContext * f_
double cmsmath::OneDimMinimizer::max ( ) const
inline

Definition at line 36 of file SequentialMinimizer.h.

References xmax_.

Referenced by cmsmath::SequentialMinimizer::doFullMinim().

36 { return xmax_; }
double cmsmath::OneDimMinimizer::min ( ) const
inline

Definition at line 37 of file SequentialMinimizer.h.

References xmin_.

Referenced by cmsmath::SequentialMinimizer::doFullMinim().

37 { return xmin_; }
bool cmsmath::OneDimMinimizer::minimize ( int  steps = 1,
double  ytol = 0,
double  xtol = 0 
)

do N steps of golden bisection (or until tolerance in x, y is reached) return true if converged, false if finished steps

Definition at line 35 of file SequentialMinimizer.cc.

References run_regression::done, and vdt::x.

Referenced by cmsmath::SequentialMinimizer::minimize().

36 {
37  // get initial bracket
38  seek();
39 
40  bool done = doloop(steps,ytol,xtol);
41  parabolaStep();
42  x() = xi_[1];
43  xstep_ = xi_[2] - xi_[0];
44  return done;
45 }
void seek()
search for a triplet of points bracketing the maximum. return false in case of errors ...
bool doloop(int steps, double ytol, double xtol)
bool parabolaStep()
do the parabola fit
double & x()
evaluate function at x
void cmsmath::OneDimMinimizer::moveTo ( double  x)

Definition at line 285 of file SequentialMinimizer.cc.

References max(), min, and vdt::x.

Referenced by cmsmath::SequentialMinimizer::doFullMinim().

285  {
286  if (x == xmax_) {
287  xi_[0] = xmax_ - (xi_[2]-xi_[0]); yi_[0] = eval(xi_[0]);
288  xi_[1] = xmax_; yi_[1] = eval(xmax_);
289  xi_[2] = xmax_; yi_[2] = yi_[1];
290  } else if (x == xmin_) {
291  xi_[2] = xmin_ + (xi_[2]-xi_[0]); yi_[2] = eval(xi_[0]);
292  xi_[1] = xmin_; yi_[1] = eval(xmin_);
293  xi_[0] = xmin_; yi_[0] = yi_[1];
294  } else {
295  double dx = xi_[2] - xi_[0];
296  xi_[1] = x; yi_[0] = eval(x);
297  xi_[0] = std::max(xmin_, x-dx); yi_[0] = eval(xi_[0]);
298  xi_[2] = std::min(xmax_, x+dx); yi_[2] = eval(xi_[2]);
299  }
300 }
#define min(a, b)
Definition: mlp_lapack.h:161
const T & max(const T &a, const T &b)
double & x()
evaluate function at x
const std::string& cmsmath::OneDimMinimizer::name ( void  ) const
inline

Definition at line 34 of file SequentialMinimizer.h.

References name_.

Referenced by cmsmath::SequentialMinimizer::doFullMinim(), and init().

34 { return name_; }
double cmsmath::OneDimMinimizer::parabolaFit ( )
private

do the parabola fit

Definition at line 248 of file SequentialMinimizer.cc.

References vdt::x.

249 {
250  if (xi_[0] == xi_[1] || xi_[1] == xi_[2]) {
251  return xi_[1];
252  }
253  double dx0 = xi_[1] - xi_[0], dx2 = xi_[1] - xi_[2];
254  double dy0 = yi_[1] - yi_[0], dy2 = yi_[1] - yi_[2];
255  double num = dx0*dx0*dy2 - dx2*dx2*dy0;
256  double den = dx0*dy2 - dx2*dy0;
257  if (den != 0) {
258  double x = xi_[1] - 0.5*num/den;
259  if (xi_[0] < x && x < xi_[2]) {
260  return x;
261  }
262  }
263  return xi_[1];
264 }
long long int num
Definition: procUtils.cc:71
double & x()
evaluate function at x
bool cmsmath::OneDimMinimizer::parabolaStep ( )
private

do the parabola fit

Definition at line 266 of file SequentialMinimizer.cc.

266  {
267  double xc = parabolaFit();
268  if (xc != xi_[1]) {
269  double yc = eval(xc);
270  if (yc < yi_[1]) {
271  xi_[1] = xc;
272  yi_[1] = yc;
273  //post-condition: always a sorted interval
274  assert(xi_[0] < xi_[2]);
275  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
276  // if midpoint is not not one of the extremes, it's not higher than that extreme
277  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
278  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
279  return true;
280  }
281  }
282  return false;
283 }
double parabolaFit()
do the parabola fit
void cmsmath::OneDimMinimizer::reseek ( )
private

re-search for a triplet of points bracketing the maximum. return false in case of errors assume that value and error make sense

Definition at line 141 of file SequentialMinimizer.cc.

References assign, i, max(), min, and vdt::x.

142 {
143  double xtol2 = 2*(fabs(xi_[1])+XTOL)*XTOL;
144  if (xstep_ < xtol2) xstep_ = xtol2;
145  xi_[1] = x();
146  yi_[1] = eval(xi_[1]);
147  xi_[0] = std::max(xmin_, xi_[1]-xstep_);
148  yi_[0] = (xi_[0] == xi_[1] ? yi_[1] : eval(xi_[0]));
149  xi_[2] = std::min(xmax_, xi_[1]+xstep_);
150  yi_[2] = (xi_[2] == xi_[1] ? yi_[1] : eval(xi_[2]));
151  assert(xi_[0] < xi_[2]);
152  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
153 
154  for (;;) {
155  //DEBUG_ODM_printf("ODM: bracketing %s in x = [%.4f, %.4f, %.4f], y = [%.4f, %.4f, %.4f]\n", name_.c_str(), xi_[0], xi_[1], xi_[2], yi_[0], yi_[1], yi_[2]);
156  if (yi_[0] < yi_[1]) {
157  assign(2,1); // 2:=1
158  assign(1,0); // 1:=0
159  xi_[0] = std::max(xmin_, xi_[1]-xstep_);
160  yi_[0] = (xi_[0] == xi_[1] ? yi_[1] : eval(xi_[0]));
161  } else if (yi_[2] < yi_[1]) {
162  assign(0,1); // 0:=1
163  assign(1,2); // 1:=2
164  xi_[2] = std::min(xmax_, xi_[1]+xstep_);
165  yi_[2] = (xi_[2] == xi_[1] ? yi_[1] : eval(xi_[2]));
166  } else if (yi_[2] == yi_[1] && yi_[1] == yi_[0]) {
167  // function is identical in three points --> constant?
168  // try a scan
169  const int nPoints = 20;
170  double xi[nPoints], yi[nPoints];
171  double dx = (xmax_-xmin_)/nPoints, x = xmin_ - 0.5*dx;
172  bool isConst = true;
173  int iFound = 0;
174  for (int i = 0; i < nPoints; ++i, x += dx) {
175  xi[i] = x; yi[i] = eval(x);
176  if (yi[i] != yi_[1]) isConst = false;
177  if (yi[i] < yi[iFound]) { iFound = i; }
178  }
179  if (isConst) break;
180  xi_[0] = (iFound == 0 ? xmin_ : xi[iFound-1]);
181  xi_[2] = (iFound > nPoints-1 ? xmax_ : xi[iFound+1]);
182  xi_[1] = iFound; yi_[1] = yi_[iFound];
183  break;
184  } else {
185  xstep_ /= 2;
186  break;
187  }
188  xstep_ *= 2;
189  }
190  //DEBUG_ODM_printf("ODM: bracketed minimum of %s in [%.4f, %.4f, %.4f]\n", name_.c_str(), xi_[0], xi_[1], xi_[2]);
191  //post-condition: always a sorted interval
192  assert(xi_[0] < xi_[2]);
193  assert(xi_[0] <= xi_[1] && xi_[1] <= xi_[2]);
194  // if midpoint is not not one of the extremes, it's not higher than that extreme
195  assert(xi_[1] == xi_[0] || yi_[1] <= yi_[0]);
196  assert(xi_[1] == xi_[2] || yi_[1] <= yi_[2]);
197 }
int i
Definition: DBlmapReader.cc:9
void assign(int to, int from)
#define min(a, b)
Definition: mlp_lapack.h:161
const T & max(const T &a, const T &b)
double & x()
evaluate function at x
void cmsmath::OneDimMinimizer::seek ( )
private

search for a triplet of points bracketing the maximum. return false in case of errors

Definition at line 132 of file SequentialMinimizer.cc.

References max().

133 {
134  if (std::isfinite(xmax_-xmin_)) {
135  xstep_ = std::max(xstep_, 0.2*(xmax_-xmin_));
136  } else {
137  xstep_ = 1.0;
138  }
139  reseek();
140 }
const T & max(const T &a, const T &b)
double cmsmath::OneDimMinimizer::step ( ) const
inline

Definition at line 38 of file SequentialMinimizer.h.

References xstep_.

Referenced by cmsmath::SequentialMinimizer::doFullMinim().

38 { return xstep_; }
double& cmsmath::OneDimMinimizer::x ( )
inlineprivate

Member Data Documentation

const MinimizerContext* cmsmath::OneDimMinimizer::f_
private

Definition at line 69 of file SequentialMinimizer.h.

Referenced by eval(), init(), isInit(), and x().

unsigned int cmsmath::OneDimMinimizer::idx_
private

Definition at line 71 of file SequentialMinimizer.h.

Referenced by eval(), init(), and x().

std::string cmsmath::OneDimMinimizer::name_
private

Definition at line 73 of file SequentialMinimizer.h.

Referenced by cname(), init(), and name().

double cmsmath::OneDimMinimizer::xi_[3]
private

Definition at line 76 of file SequentialMinimizer.h.

Referenced by assign().

double cmsmath::OneDimMinimizer::xmax_
private

Definition at line 79 of file SequentialMinimizer.h.

Referenced by init(), and max().

double cmsmath::OneDimMinimizer::xmin_
private

Definition at line 79 of file SequentialMinimizer.h.

Referenced by init(), and min().

double cmsmath::OneDimMinimizer::xstep_
private

Definition at line 79 of file SequentialMinimizer.h.

Referenced by init(), and step().

double cmsmath::OneDimMinimizer::yi_[3]
private

Definition at line 76 of file SequentialMinimizer.h.

Referenced by assign().