npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0
GriddedRobustRegressionStop.hh
Go to the documentation of this file.
1 #ifndef NPSTAT_GRIDDEDROBUSTREGRESSIONSTOP_HH_
2 #define NPSTAT_GRIDDEDROBUSTREGRESSIONSTOP_HH_
3 
4 /*!
5 // \file GriddedRobustRegressionStop.hh
6 //
7 // \brief A simple stopping functor for iterative local gridded robust regression
8 //
9 // Author: I. Volobouev
10 //
11 // December 2011
12 */
13 
16 
17 namespace npstat {
18  /**
19  // A simple stopping functor for iterative local gridded robust regression
20  */
22  public Functor2<bool,LocalLoss,unsigned long>
23  {
24  public:
25  /**
26  // The robust regression will be stopped when at least one
27  // of the following conditions is satisfied:
28  //
29  // -- Number of iterations reaches "maxcalls"
30  //
31  // -- The loss function improvement due to point replacement
32  // operation becomes smaller than "lossImprovementTarget"
33  //
34  // -- The loss value itself becomes smaller than "lossValueTarget".
35  */
36  inline explicit GriddedRobustRegressionStop(unsigned long maxcalls,
37  double lossImprovementTarget = -1.0e300,
38  double lossValueTarget = -1.0e300)
39  : lossImprovementTarget_(lossImprovementTarget),
40  lossValueTarget_(lossValueTarget),
41  maxcalls_(maxcalls) {}
42 
43  inline virtual ~GriddedRobustRegressionStop() {}
44 
45  inline virtual bool operator()(const LocalLoss& lastLoss,
46  const unsigned long& nReplacements) const
47  {
48  return nReplacements >= maxcalls_ ||
49  lastLoss.improvement < lossImprovementTarget_ ||
50  lastLoss.value < lossValueTarget_;
51  }
52 
53  private:
54  double lossImprovementTarget_;
55  double lossValueTarget_;
56  unsigned long maxcalls_;
57  };
58 }
59 
60 #endif // NPSTAT_GRIDDEDROBUSTREGRESSIONSTOP_HH_
Interfaces and utility classes for gridded robust regression.
Interface definitions and concrete simple functors for a variety of functor-based calculations.
Definition: GriddedRobustRegressionStop.hh:23
GriddedRobustRegressionStop(unsigned long maxcalls, double lossImprovementTarget=-1.0e300, double lossValueTarget=-1.0e300)
Definition: GriddedRobustRegressionStop.hh:36
Definition: AbsArrayProjector.hh:14
Definition: SimpleFunctors.hh:89