aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/Stats.h
blob: 2370084fd65506200043a70e9081ceff07002115 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef Stats_DEFINED
#define Stats_DEFINED

struct Stats {
    Stats(const double samples[], int n) {
        min = samples[0];
        max = samples[0];
        for (int i = 0; i < n; i++) {
            if (samples[i] < min) { min = samples[i]; }
            if (samples[i] > max) { max = samples[i]; }
        }

        double sum = 0.0;
        for (int i = 0 ; i < n; i++) {
            sum += samples[i];
        }
        mean = sum / n;

        double err = 0.0;
        for (int i = 0 ; i < n; i++) {
            err += (samples[i] - mean) * (samples[i] - mean);
        }
        var = err / (n-1);
    }

    double min;
    double max;
    double mean;  // Estimate of population mean.
    double var;   // Estimate of population variance.
};

#endif//Stats_DEFINED