Horizon
accumulator.hpp
1 #pragma once
2 
3 namespace horizon {
4 template <typename T> class Accumulator {
5 public:
6  Accumulator() : value()
7  {
8  }
9  void accumulate(const T &v)
10  {
11  value = (value * n + v) / (n + 1);
12  n++;
13  }
14  T get()
15  {
16  return value;
17  }
18  size_t get_n()
19  {
20  return n;
21  }
22 
23 private:
24  T value;
25  size_t n = 0;
26 };
27 } // namespace horizon
horizon::Accumulator
Definition: accumulator.hpp:4