From cfe912a5127b51273d7e3e78c15095ac832f20bd Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Fri, 10 Jan 2014 16:19:40 -0600 Subject: stats: add function for adding two histograms This patch adds a function to the HistStor class for adding two histograms. This functionality is required for Ruby. It also adds support for printing histograms in a single line. --- src/base/statistics.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/base/statistics.cc') diff --git a/src/base/statistics.cc b/src/base/statistics.cc index 0b44a4ec7..2bd34d3db 100644 --- a/src/base/statistics.cc +++ b/src/base/statistics.cc @@ -352,6 +352,27 @@ HistStor::grow_up() bucket_size *= 2; } +void +HistStor::add(HistStor *hs) +{ + int b_size = hs->size(); + assert(size() == b_size); + assert(min_bucket == hs->min_bucket); + + sum += hs->sum; + logs += hs->logs; + squares += hs->squares; + samples += hs->samples; + + while(bucket_size > hs->bucket_size) + hs->grow_up(); + while(bucket_size < hs->bucket_size) + grow_up(); + + for (uint32_t i = 0; i < b_size; i++) + cvec[i] += hs->cvec[i]; +} + Formula::Formula() { } -- cgit v1.2.3