MovingAverage template
Fork of MoyenneMobile by
Diff: MovingAverage.h
- Revision:
- 1:b310d132db09
- Parent:
- 0:226202c7ea37
- Child:
- 4:0f6a72e290ad
--- a/MovingAverage.h Sun Apr 14 01:02:39 2013 +0000
+++ b/MovingAverage.h Mon Jul 07 12:27:57 2014 +0000
@@ -5,7 +5,7 @@
class MovingAverage
{
private:
- T AverageFilter[];
+ T* Element;
T Average;
unsigned char NextElement;
@@ -13,7 +13,35 @@
public:
MovingAverage(unsigned char maxLength, T defaultValue);
T GetAverage();
+
void Insert(T value);
};
+template<class T>
+MovingAverage<T>::MovingAverage(unsigned char maxLength, T defaultValue){
+ MaxLength = maxLength;
+
+ Element = new T[MaxLength];
+
+ for(int i = 0; i<MaxLength;i++)
+ {
+ Element[i] = defaultValue;
+ }
+ Average = defaultValue;
+}
+
+template<class T>
+T MovingAverage<T>::GetAverage(){
+ return Average;
+}
+
+
+template<class T>
+void MovingAverage<T>::Insert(T value){
+ Average = value/MaxLength + Average - Element[++NextElement]/MaxLength;
+ Element[NextElement] = value;
+ if(NextElement>=(MaxLength-1))
+ NextElement=0;
+
+}
#endif
\ No newline at end of file
frederic blanc
