diff --git a/libs/util/include/psemek/util/statistics.hpp b/libs/util/include/psemek/util/statistics.hpp index d3e27bcd..014870e4 100644 --- a/libs/util/include/psemek/util/statistics.hpp +++ b/libs/util/include/psemek/util/statistics.hpp @@ -44,7 +44,7 @@ namespace psemek::util template struct statistics_lite { - void push(T const & value); + void push(T const & value, std::size_t count = 1); std::size_t count() const { return count_; } T mean() const; @@ -64,11 +64,11 @@ namespace psemek::util }; template - void statistics_lite::push(T const & value) + void statistics_lite::push(T const & value, std::size_t count) { - ++count_; - sum_ += value; - sum_sqr_ += value * value; + count_ += count; + sum_ += value * static_cast(count); + sum_sqr_ += value * value * static_cast(count); min_ = std::min(min_, value); max_ = std::max(max_, value); }