From 2a1309f2134986edcbff846aff5951ec1e8df6e1 Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Wed, 21 Jul 2010 15:53:53 -0700 Subject: stats: cleanup a few small problems in stats --- src/base/statistics.hh | 43 ++++++++++++++++--------------------------- src/base/stats/text.cc | 16 ++++++++++++---- 2 files changed, 28 insertions(+), 31 deletions(-) (limited to 'src/base') diff --git a/src/base/statistics.hh b/src/base/statistics.hh index 37bb1b90b..5fca376e3 100644 --- a/src/base/statistics.hh +++ b/src/base/statistics.hh @@ -401,7 +401,7 @@ class DataWrapVec2d : public DataWrapVec } Derived & - ysubname(off_type index, const std::string subname) + ysubname(off_type index, const std::string &subname) { Derived &self = this->self(); Info *info = this->info(); @@ -411,6 +411,13 @@ class DataWrapVec2d : public DataWrapVec info->y_subnames[index] = subname.c_str(); return self; } + + std::string + ysubname(off_type i) const + { + return this->info()->y_subnames[i]; + } + }; ////////////////////////////////////////////////////////////////////// @@ -1197,8 +1204,6 @@ class Vector2dBase : public DataWrapVec2d return self; } - std::string ysubname(off_type i) const { return (*this->y_subnames)[i]; } - Proxy operator[](off_type index) { @@ -1713,13 +1718,10 @@ class VectorDistBase : public DataWrapVec bool zero() const { - return false; -#if 0 for (off_type i = 0; i < size(); ++i) if (!data(i)->zero()) return false; return true; -#endif } void @@ -1792,27 +1794,6 @@ class DistProxy */ void reset() { } }; -/* -template -inline typename VectorDistBase::Proxy -VectorDistBase::operator[](off_type index) -{ - assert (index >= 0 && index < size()); - typedef typename VectorDistBase::Proxy Proxy; - return Proxy(this->self(), index); -} -*/ - -#if 0 -template -Result -VectorDistBase::total(off_type index) const -{ - Result total = 0.0; - for (off_type i = 0; i < x_size(); ++i) - total += data(i)->result(); -} -#endif ////////////////////////////////////////////////////////////////////// // @@ -2291,7 +2272,9 @@ class StandardDeviation : public DistBase */ StandardDeviation() { + SampleStor::Params *params = new SampleStor::Params; this->doInit(); + this->setParams(params); } }; @@ -2307,7 +2290,9 @@ class AverageDeviation : public DistBase */ AverageDeviation() { + AvgSampleStor::Params *params = new AvgSampleStor::Params; this->doInit(); + this->setParams(params); } }; @@ -2356,7 +2341,9 @@ class VectorStandardDeviation VectorStandardDeviation & init(size_type size) { + SampleStor::Params *params = new SampleStor::Params; this->doInit(size); + this->setParams(params); return this->self(); } }; @@ -2377,7 +2364,9 @@ class VectorAverageDeviation VectorAverageDeviation & init(size_type size) { + AvgSampleStor::Params *params = new AvgSampleStor::Params; this->doInit(size); + this->setParams(params); return this->self(); } }; diff --git a/src/base/stats/text.cc b/src/base/stats/text.cc index f3c4d1c58..87bb05323 100644 --- a/src/base/stats/text.cc +++ b/src/base/stats/text.cc @@ -348,10 +348,18 @@ DistPrint::init(const Text *text, const Info &info, const DistParams *params) descriptions = text->descriptions; type = params->type; - min = params->min; - max = params->max; - bucket_size = params->bucket_size; - size = params->buckets; + switch (type) { + case Dist: + min = params->min; + max = params->max; + bucket_size = params->bucket_size; + size = params->buckets; + break; + case Deviation: + break; + default: + panic("unknown distribution type"); + } } void -- cgit v1.2.3