1 #ifndef GCP_UTIL_MOVING_AVERAGE_H
2 #define GCP_UTIL_MOVING_AVERAGE_H
5 #include "gcp/util/common/Exception.h"
15 bool valid() {
return (samples_.size() == numSamples_);};
16 void addSample(T sample);
19 return total_ / samples_.size();
25 void setNumSamples(
unsigned int numSamples);
29 std::deque<T> samples_;
31 unsigned int numSamples_;
38 MovingAverage<T>::MovingAverage() : numSamples_(1), total_(0) {};
41 void MovingAverage<T>::addSample(T sample) {
43 samples_.push_back(sample);
44 while(samples_.size() > numSamples_)
46 total_ -= samples_.front();
52 void MovingAverage<T>::reset() {
58 void MovingAverage<T>::setNumSamples(
unsigned int numSamples) {
59 numSamples_ = numSamples;
65 #endif // End #ifndef GCP_UTIL_MOVING_AVERAGE_H
Definition: MovingAverage.h:11