All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Brief description of class still missing. More...
#include <Average.h>
Public Member Functions | |
void | add (double v) |
Average () | |
int | badValue (double factor=3.0) const |
void | calculate () |
int | count () const |
double | mean () const |
void | remove (int i) |
void | reset () |
double | stddev () const |
Brief description of class still missing.
Full description of class still missing
{ _mean=0.0; _stddev=0.0; }
void GpCoreTools::Average::add | ( | double | v | ) | [inline] |
{_values.push_back(v);}
int GpCoreTools::Average::badValue | ( | double | factor = 3.0 | ) | const |
{ double stddev3=factor*_stddev; unsigned int n=_values.size(); for(unsigned int i=0;i<n;i++) { if(fabs(_values[i]-_mean)>stddev3) { return i; } } return -1; }
void GpCoreTools::Average::calculate | ( | ) |
References QGpCoreTools::sqrt().
{ unsigned int n=_values.size(); // Get std deviation and discard any value outside three stddev double sum=0; double sum2=0; for(unsigned int i=0;i<n;i++) { double v=_values[i]; sum+=v; sum2+=v*v; } _mean=sum/n; _stddev=(sum2-_mean*_mean*n)/(n-1); if(_stddev<0.0) _stddev=0.0; _stddev=sqrt(_stddev); }
int GpCoreTools::Average::count | ( | ) | const [inline] |
{return _values.size();}
double GpCoreTools::Average::mean | ( | ) | const [inline] |
{return _mean;}
void GpCoreTools::Average::remove | ( | int | i | ) |
{ unsigned int n=_values.size(); _values[i]=_values[n-1]; _values.resize(n-1); }
void GpCoreTools::Average::reset | ( | ) | [inline] |
Referenced by LinkBuffer::bytesAvailable().
{_values.clear();}
double GpCoreTools::Average::stddev | ( | ) | const [inline] |
{return _stddev;}