1#ifndef Stats_DEFINED
2#define Stats_DEFINED
3
4struct Stats {
5    Stats(const double samples[], int n) {
6        min = samples[0];
7        max = samples[0];
8        for (int i = 0; i < n; i++) {
9            if (samples[i] < min) { min = samples[i]; }
10            if (samples[i] > max) { max = samples[i]; }
11        }
12
13        double sum = 0.0;
14        for (int i = 0 ; i < n; i++) {
15            sum += samples[i];
16        }
17        mean = sum / n;
18
19        double err = 0.0;
20        for (int i = 0 ; i < n; i++) {
21            err += (samples[i] - mean) * (samples[i] - mean);
22        }
23        var = err / (n-1);
24    }
25
26    double min;
27    double max;
28    double mean;  // Estimate of population mean.
29    double var;   // Estimate of population variance.
30};
31
32#endif//Stats_DEFINED
33