Added Standard Deviation, Variance and Square Sum methods to MinMaxAvgTotalcalculator
--- a/src/stats/model/basic-data-calculators.h Mon Apr 11 17:33:28 2011 +0200
+++ b/src/stats/model/basic-data-calculators.h Tue Apr 12 10:41:49 2011 +0200
@@ -44,15 +44,15 @@
double getMin() const { return m_min; }
double getMax() const { return m_max; }
double getMean() const { return m_total / (double)m_count; }
- double getStddev() const { return NaN; } // unsupported
- double getVariance() const { return NaN; } // unsupported
- double getSqrSum() const { return NaN; } // unsupported
+ double getStddev() const { return sqrt (getVariance ()); }
+ double getVariance() const { return ( m_count * m_totalSquare - m_total * m_total ) / (double) (m_count * (m_count - 1) ); }
+ double getSqrSum() const { return m_totalSquare; }
protected:
virtual void DoDispose(void);
uint32_t m_count;
- T m_total, m_min, m_max;
+ T m_total, m_min, m_max, m_totalSquare;
// end MinMaxAvgTotalCalculator
};
@@ -63,6 +63,7 @@
{
m_count = 0;
m_total = 0;
+ m_totalSquare = 0;
m_min = ~0;
m_max = 0;
}
@@ -85,6 +86,7 @@
{
if (m_enabled) {
m_total += i;
+ m_totalSquare += i*i;
if (i < m_min)
m_min = i;