statistics.h
Go to the documentation of this file.
1 #ifndef __statistics_h__
2 #define __statistics_h__ 1
3 
4 namespace utils {
5 
6 class statistics {
7  unsigned int N;
8  double A;
9  double varL;
10  double varH;
11 public:
12  statistics() : N(0), A(0.0), varL(0.0), varH(0.0) {}
13  double count() {return N;}
14  double mean() {return A;}
15  void add(double t) {
16  ++N;
17  double diff=t-A;
18  A += diff/N;
19  double v=diff*(t-A);
20  if(diff < 0.0)
21  varL += v;
22  else
23  varH += v;
24  }
25  double stdev(double var, double f) {
26  double factor=N > f ? f/(N-f) : 0.0;
27  return sqrt(var*factor);
28  }
29  double stdev() {
30  return stdev(varL+varH,1.0);
31  }
32  double stdevL() {
33  return stdev(varL,2.0);
34  }
35  double stdevH() {
36  return stdev(varH,2.0);
37  }
38  void output(const char *text, unsigned int m) {
39  std::cout << text << ":\n"
40  << m << "\t"
41  << A << "\t"
42  << stdevL() << "\t"
43  << stdevH() << std::endl;
44  }
45 };
46 
47 }
48 
49 #endif
double stdevH()
Definition: statistics.h:35
void output(const char *text, unsigned int m)
Definition: statistics.h:38
double stdev()
Definition: statistics.h:29
double stdevL()
Definition: statistics.h:32
double stdev(double var, double f)
Definition: statistics.h:25
unsigned int N
Definition: statistics.h:7
double count()
Definition: statistics.h:13
void add(double t)
Definition: statistics.h:15
constexpr double m
Definition: AugerUnits.h:121

, generated on Tue Sep 26 2023.