#include "histogram.h" #include "histogram_internal.h" #include #include using namespace std; void find_minmax(const vector& numbers, double& min, double& max) { if (numbers.empty()) { return; } min = numbers[0]; max = numbers[0]; for (double x : numbers) { if (x < min) min = x; if (x > max) max = x; } } vector make_histogram(const vector& numbers, size_t bin_count) { double min, max; find_minmax(numbers, min, max); vector bins(bin_count); for (double x : numbers) { size_t bin_index = (x - min) / (max - min) * bin_count; if (bin_index == bin_count) bin_index--; bins[bin_index]++; } return bins; }