File indexing completed on 2023-03-17 10:45:30
0001 #ifndef Statistics_Accumulator_h
0002 #define Statistics_Accumulator_h
0003
0004
0005
0006
0007
0008
0009 #include <iosfwd>
0010 #include <cmath>
0011
0012 class Accumulator {
0013 public:
0014 Accumulator();
0015
0016 void addEntry(double value, double weight = 1.);
0017
0018 double mean() const;
0019
0020 double variance() const;
0021
0022 double sigma() const { return std::sqrt(variance()); }
0023
0024 double weightedMean() const;
0025
0026 unsigned long nEntries() const { return n_; }
0027
0028 private:
0029 double sum_;
0030 double sumOfSquares_;
0031 double weightedSum_;
0032 double sumOfWeights_;
0033 unsigned long n_;
0034 };
0035
0036 std::ostream& operator<<(std::ostream& os, const Accumulator& stat);
0037
0038 #endif