24 #ifndef CLOE_UTILITY_STATISTICS_HPP_ 25 #define CLOE_UTILITY_STATISTICS_HPP_ 46 void push_back(T key) {
51 uint64_t count()
const {
return n_; }
53 uint64_t count(T key)
const {
return map_.count(key) ? map_.at(key) : 0; }
58 for (
auto& kv : map_) {
59 if (kv.second > max) {
67 double proportion(T key)
const {
68 return static_cast<double>(count(key)) / static_cast<double>(n_);
71 std::map<T, double> proportions()
const {
72 const double nd =
static_cast<double>(n_);
73 std::map<T, double> prop;
74 for (
auto& kv : map_) {
75 prop[kv.first] =
static_cast<double>(kv.second) / nd;
86 std::map<std::string, uint64_t> dist;
87 for (
auto& kv : pie.map_) {
88 dist[to_string(kv.first)] = kv.second;
90 j[
"distribution"] = dist;
93 std::map<std::string, double> prop;
94 for (
auto& kv : pie.proportions()) {
95 prop[to_string(kv.first)] = kv.second;
97 j[
"proportions"] = prop;
102 std::map<T, uint64_t> map_;
151 double m = mean_ + (x - mean_) / static_cast<double>(n_);
152 var_ = var_ + (x - mean_) * (x - m);
159 uint64_t
count()
const {
return n_; }
164 double max()
const {
return max_; }
169 double min()
const {
return min_; }
174 double mean()
const {
return mean_; }
190 return var_ /
static_cast<double>(n_ - 1);
192 return var_ /
static_cast<double>(n_);
202 double std_dev(
bool sample =
false)
const {
return std::sqrt(variance(sample)); }
214 {
"std_deviation", a.
std_dev()},
215 {
"sample_variance", a.
variance(
true)},
216 {
"sample_std_deviation", a.
std_dev(
true)},
231 #endif // CLOE_UTILITY_STATISTICS_HPP_ double max() const
Definition: statistics.hpp:164
void reset()
Definition: statistics.hpp:121
friend void to_json(fable::Json &j, const Accumulator &a)
Definition: statistics.hpp:207
double variance(bool sample=false) const
Definition: statistics.hpp:182
double mean() const
Definition: statistics.hpp:174
nlohmann::json Json
Definition: json.hpp:62
void push_back(double x)
Definition: statistics.hpp:134
double std_dev(bool sample=false) const
Definition: statistics.hpp:202
Definition: coordinator.hpp:36
uint64_t count() const
Definition: statistics.hpp:159
double min() const
Definition: statistics.hpp:169
Definition: statistics.hpp:112
Definition: statistics.hpp:37