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;}