Put a value into the average (rolls over if full) @param i the value
(double i)
| 54 | * @param i the value |
| 55 | */ |
| 56 | public void put(double i) { |
| 57 | |
| 58 | dirty = true; |
| 59 | |
| 60 | if (brandNew) { |
| 61 | DoubleArrayUtils.fill(values, i); |
| 62 | lastSum = size() * i; |
| 63 | brandNew = false; |
| 64 | return; |
| 65 | } |
| 66 | |
| 67 | double current = values[cursor]; |
| 68 | lastSum = (lastSum - current) + i; |
| 69 | values[cursor] = i; |
| 70 | cursor = cursor + 1 < size() ? cursor + 1 : 0; |
| 71 | } |
| 72 | |
| 73 | /** |
| 74 | * Get the current average |
no test coverage detected