24 std::atomic<unsigned long>
N;
37 N = (
unsigned long)fh.
N;
42 history_size = (size_t)fh.history_size;
43 history_index = (
size_t)fh.history_index;
44 N = (
unsigned long)fh.N;
51 N = (
unsigned long)fh.
N;
55 history = std::move(fh.history);
56 history_size = (size_t)fh.history_size;
57 history_index = (
size_t)fh.history_index;
58 N = (
unsigned long)fh.N;
62 std::lock_guard guard(mutex);
73 std::lock_guard guard(mutex);
95 std::lock_guard guard(mutex);
97 for(
const auto& a: history)
100 return double(sm) / history.size();
Definition: OrderedLock.h:16
OrderedLock mutex
Definition: FiniteHistory.h:26
FiniteHistory(FiniteHistory &&fh)
Definition: FiniteHistory.h:40
void operator=(FiniteHistory &&fh)
Definition: FiniteHistory.h:54
void operator=(const FiniteHistory &fh)
Definition: FiniteHistory.h:47
std::vector< T > history
Definition: FiniteHistory.h:21
FiniteHistory(size_t n)
Definition: FiniteHistory.h:28
FiniteHistory(const FiniteHistory &fh)
Definition: FiniteHistory.h:33
void operator<<(T x)
Convenient adding.
Definition: FiniteHistory.h:88
A FIFO mutex (from stackoverflow) https://stackoverflow.com/questions/14792016/creating-a-lock-that-p...
Definition: FiniteHistory.h:17
void reset()
Definition: FiniteHistory.h:61
void add(T x)
Add x to this history.
Definition: FiniteHistory.h:72
std::atomic< size_t > history_index
Definition: FiniteHistory.h:23
FiniteHistory()
Definition: FiniteHistory.h:31
std::atomic< size_t > history_size
Definition: FiniteHistory.h:22
std::atomic< unsigned long > N
Definition: FiniteHistory.h:24
double mean()
Compute the average.
Definition: FiniteHistory.h:94