Horizon
Loading...
Searching...
No Matches
accumulator.hpp
1#pragma once
2
3namespace horizon {
4template <typename T> class Accumulator {
5public:
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
23private:
24 T value;
25 size_t n = 0;
26};
27} // namespace horizon
Definition accumulator.hpp:4