diff options
Diffstat (limited to 'src/mem/ruby/common/Histogram.hh')
-rw-r--r-- | src/mem/ruby/common/Histogram.hh | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/mem/ruby/common/Histogram.hh b/src/mem/ruby/common/Histogram.hh index bfc0e4293..c34e39af1 100644 --- a/src/mem/ruby/common/Histogram.hh +++ b/src/mem/ruby/common/Histogram.hh @@ -37,34 +37,38 @@ class Histogram { public: - Histogram(int binsize = 1, int bins = 50); + Histogram(int binsize = 1, uint32_t bins = 50); ~Histogram(); void add(int64 value); - void add(const Histogram& hist); - void clear() { clear(m_bins); } - void clear(int bins); - void clear(int binsize, int bins); - int64 size() const { return m_count; } - int getBins() const { return m_bins; } + void add(Histogram& hist); + void doubleBinSize(); + + void clear() { clear(m_data.size()); } + void clear(uint32_t bins); + void clear(int binsize, uint32_t bins); + + uint64_t size() const { return m_count; } + uint32_t getBins() const { return m_data.size(); } int getBinSize() const { return m_binsize; } int64 getTotal() const { return m_sumSamples; } - int64 getData(int index) const { return m_data[index]; } + uint64_t getSquaredTotal() const { return m_sumSquaredSamples; } + uint64_t getData(int index) const { return m_data[index]; } + int64 getMax() const { return m_max; } void printWithMultiplier(std::ostream& out, double multiplier) const; void printPercent(std::ostream& out) const; void print(std::ostream& out) const; private: - std::vector<int64> m_data; + std::vector<uint64_t> m_data; int64 m_max; // the maximum value seen so far - int64 m_count; // the number of elements added + uint64_t m_count; // the number of elements added int m_binsize; // the size of each bucket - int m_bins; // the number of buckets - int m_largest_bin; // the largest bin used + uint32_t m_largest_bin; // the largest bin used int64 m_sumSamples; // the sum of all samples - int64 m_sumSquaredSamples; // the sum of the square of all samples + uint64_t m_sumSquaredSamples; // the sum of the square of all samples double getStandardDeviation() const; }; |