This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Indoor/math/stats/Variance.h
frank a22290415e fixed some issues with stats::variance
fixed umbrella header for stats
added error-feedback to wifi optimizers
improved logging for wifi optimizers
adjusted calling-API for wifi-optimizers
2018-05-20 18:56:49 +02:00

49 lines
756 B
C++

#ifndef STATS_VARIANCE_H
#define STATS_VARIANCE_H
#include "../../Assertions.h"
#include "Average.h"
namespace Stats {
template <typename Scalar> class Variance {
Average<Scalar> avg;
Average<Scalar> avg2;
public:
/** ctor */
Variance() {
;
}
/** contains valid data? */
bool isValid() const {
return avg.isValid();
}
/** add a new value */
void add(const Scalar val) {
avg.add(val);
avg2.add(val*val);
}
/** get the current variance */
Scalar get() const {
Assert::isTrue(avg.isValid(), "add() values first!");
return avg2.get() - (avg.get()*avg.get());
}
/** get the current stadard-deviation */
Scalar getStdDev() const {
return std::sqrt(get());
}
};
}
#endif // STATS_VARIANCE_H