package com.ezio.multiwii.helpers; public class MovingAvg { private int size; private double total = 0d; private int index = 0; private double samples[]; public MovingAvg(int size) { this.size = size; samples = new double[size]; for (int i = 0; i < size; i++) samples[i] = 0d; } public void add(double x) { total -= samples[index]; samples[index] = x; total += x; if (++index == size) index = 0; // cheaper than modulus } public double getAverage() { return total / size; } }