X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FStatisticAccumulator.ct;h=9e5d106de941ac9780e049a0794fb24f8487c002;hb=5b2e9a63a43027c71ac470ac9bdecb72e8974951;hp=e2c7497146b0516476df5314dbdc559ba4f3ee76;hpb=be253d22a60afc49fa9265fcff4728742e9f9a2d;p=senf.git diff --git a/senf/Utils/StatisticAccumulator.ct b/senf/Utils/StatisticAccumulator.ct index e2c7497..9e5d106 100644 --- a/senf/Utils/StatisticAccumulator.ct +++ b/senf/Utils/StatisticAccumulator.ct @@ -81,20 +81,29 @@ prefix_ void senf::StatisticAccumulator::accumulate( T value) template prefix_ void senf::StatisticAccumulator::clear() { - last_avg_ = avg(); - count_ = 0; - sum_squared_ = 0; - sum_ = min_ = max_ = 0; + if( count_ > 0){ + last_avg_ = avg(); + count_ = 0; + sum_squared_ = 0; + sum_ = min_ = max_ = 0; + } } template prefix_ void senf::StatisticAccumulator::data( StatisticsData &data_) const { - data_.min = (float) min_; - data_.avg = avg(); - data_.max = (float) max_; - data_.stddev = stddev(); - data_.count = count; + if( count_ == 0){ + data_.min = data_.avg = data_.max = last_avg_; + data_.stddev = 0.0; + data_.count = 0; + } + else{ + data_.min = (float) min_; + data_.avg = avg(); + data_.max = (float) max_; + data_.stddev = stddev(); + data_.count = count_; + } }