2022-01-24 11:26:56 +01:00

34 lines
637 B
C++

// SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package
class Stat {
public:
Stat() : n(0), m(0.), m2(0.) {}
void Clear() {
n = 0;
m = 0;
m2 = 0;
}
void Push(double x) {
m += x;
m2 += x * x;
n++;
}
int NumDataValues() const { return n; }
double Mean() const { return (n > 0) ? m / n : 0.0; }
double Variance() const {
return ((n > 0) ? (m2 / n - m * m / (n * n)) : 0.0);
}
double StandardDeviation() const { return sqrt(Variance()); }
private:
int n;
double m, m2;
};