My Project
variance.h
Go to the documentation of this file.
1 /* variance.h
2  */
3 #ifndef _VARIANCE_H
4 #define _VARIANCE_H
5 
6 #include "osl/stat/average.h"
7 namespace osl
8 {
9  namespace stat
10  {
14  class Variance : private Average
15  {
16  double m_variance;
17  typedef Average base_t;
18  public:
19  // CREATORS
21  {
22  }
23  // MANIPULATORS
24  void add(const double& x)
25  {
26  const double diff = base_t::add(x);
27  const double adjuster
28  = static_cast<double>(numElements()-1)/numElements();
29  m_variance += diff*diff*adjuster;
30  }
31 
32  // ACCESSORS
33  double variance() const { return m_variance/numElements(); }
34  using base_t::average;
35  using base_t::numElements;
36  };
37  } // namespace stat
38  using stat::Average;
39 } // namespace osl
40 
41 
42 #endif /* _VARIANCE_H */
43 // ;;; Local Variables:
44 // ;;; mode:c++
45 // ;;; c-basic-offset:2
46 // ;;; End:
osl::stat::Variance::base_t
Average base_t
Definition: variance.h:17
osl::stat::Variance::Variance
Variance()
Definition: variance.h:20
osl::stat::Variance
incrementaly maintain average and variance of data sequence
Definition: variance.h:15
osl::stat::Variance::m_variance
double m_variance
Definition: variance.h:16
average.h
osl::stat::Average::numElements
int numElements() const
Definition: average.h:49
osl::stat::Average
incrementaly maintain average of data sequence
Definition: average.h:14
osl::stat::Variance::numElements
int numElements() const
Definition: average.h:49
osl::stat::Average::add
double add(const double &x)
Add an element x.
Definition: average.h:27
osl::stat::Variance::add
void add(const double &x)
Definition: variance.h:24
osl::stat::Average::average
double average() const
Definition: average.h:48
osl::stat::Variance::variance
double variance() const
Definition: variance.h:33
osl
Definition: additionalEffect.h:6