stats: cleanup a few small problems in stats

This commit is contained in:
Nathan Binkert
2010-07-21 15:53:53 -07:00
parent 76c92c3e30
commit 2a1309f213
3 changed files with 35 additions and 38 deletions

View File

@@ -401,7 +401,7 @@ class DataWrapVec2d : public DataWrapVec<Derived, InfoProxyType>
}
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<Derived, InfoProxyType>
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<Derived, Vector2dInfoProxy>
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<Derived, VectorDistInfoProxy>
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 <class Derived, class Stor>
inline typename VectorDistBase<Derived, Stor>::Proxy
VectorDistBase<Derived, Stor>::operator[](off_type index)
{
assert (index >= 0 && index < size());
typedef typename VectorDistBase<Derived, Stor>::Proxy Proxy;
return Proxy(this->self(), index);
}
*/
#if 0
template <class Storage>
Result
VectorDistBase<Storage>::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>
*/
StandardDeviation()
{
SampleStor::Params *params = new SampleStor::Params;
this->doInit();
this->setParams(params);
}
};
@@ -2307,7 +2290,9 @@ class AverageDeviation : public DistBase<AverageDeviation, AvgSampleStor>
*/
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();
}
};

View File

@@ -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

View File

@@ -38,6 +38,7 @@
#include "base/stats/text.hh"
#include "base/stats/mysql.hh"
#include "base/types.hh"
#include "sim/stat_control.hh"
using namespace std;
using namespace Stats;
@@ -67,7 +68,6 @@ int
main(int argc, char *argv[])
{
bool descriptions = false;
bool compat = false;
bool text = false;
#if USE_MYSQL
@@ -82,9 +82,6 @@ main(int argc, char *argv[])
progname = argv[0];
while ((c = getopt(argc, argv, "cD:dh:P:p:s:tu:")) != -1) {
switch (c) {
case 'c':
compat = true;
break;
case 'd':
descriptions = true;
break;
@@ -113,9 +110,11 @@ main(int argc, char *argv[])
}
}
if (!text && (compat || descriptions))
if (!text && descriptions)
usage();
initSimStats();
Scalar s1;
Scalar s2;
Average s3;
@@ -304,7 +303,7 @@ main(int argc, char *argv[])
f4 += s5[3];
f5 = constant(1);
check();
enable();
reset();
s16[1][0] = 1;
@@ -545,10 +544,11 @@ main(int argc, char *argv[])
s12.sample(100);
prepare();
if (text) {
Text out(cout);
out.descriptions = descriptions;
out.compat = compat;
out();
}