1 #ifndef __NUMERIC_HISTOGRAM_HPP__ 2 #define __NUMERIC_HISTOGRAM_HPP__ 16 Buckets(
int count,
double min_val,
double max_val,
const T& initial = T() )
17 : count( count ), min_val( min_val ), max_val( max_val ), buckets( count, initial )
20 assert( min_val < max_val );
35 int idx = (value -
min_val) / (max_val - min_val) *
count;
36 return std::min( count-1, std::max( 0, idx ) );
39 T&
get(
double value )
46 return (max_val - min_val)/
count;
66 return buckets.size();
99 Histogram(
int count,
double min_val,
double max_val )
100 :
Buckets<size_t>( count, min_val, max_val ), n(0)
T & operator[](size_t idx)
Definition: Histogram.hpp:28
Histogram class, that splits an interval into n regular bins, and counts how often a value is added t...
Definition: Histogram.hpp:86
double getBucketWidth() const
Definition: Histogram.hpp:44
double getRelative(size_t idx) const
Definition: Histogram.hpp:122
int count
Definition: Histogram.hpp:12
double getCenter(size_t idx) const
Definition: Histogram.hpp:59
std::vector< T > buckets
Definition: Histogram.hpp:14
const T & operator[](size_t idx) const
Definition: Histogram.hpp:23
Histogram(int count, double min_val, double max_val)
Constructs a histogram where the number of update() calls with a value that all into a bin are counte...
Definition: Histogram.hpp:99
Buckets(int count, double min_val, double max_val, const T &initial=T())
Definition: Histogram.hpp:16
double getLowerBound(size_t idx) const
Definition: Histogram.hpp:54
double getUpperBound(size_t idx) const
Definition: Histogram.hpp:49
size_t n
Definition: Histogram.hpp:88
Definition: Histogram.hpp:10
double min_val
Definition: Histogram.hpp:13
size_t size() const
Definition: Histogram.hpp:64
double max_val
Definition: Histogram.hpp:13
size_t getIndex(double value) const
Definition: Histogram.hpp:33
size_t total() const
Definition: Histogram.hpp:130
void update(double value)
Definition: Histogram.hpp:111