| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | /** | |||
| 2 | * @file exp_average.h | |||
| 3 | */ | |||
| 4 | ||||
| 5 | #pragma once | |||
| 6 | ||||
| 7 | class ExpAverage { | |||
| 8 | public: | |||
| 9 | 14 | float initOrAverage(float value) { | ||
| 10 |
2/2✓ Branch 0 taken 5 times.
✓ Branch 1 taken 9 times.
|
2/2✓ Decision 'true' taken 5 times.
✓ Decision 'false' taken 9 times.
|
14 | if (current == 0) { |
| 11 | 5 | current = value; | ||
| 12 | 5 | return current; | ||
| 13 | } | |||
| 14 | 9 | return average(value); | ||
| 15 | } | |||
| 16 | ||||
| 17 | 622 | float average(float value) { | ||
| 18 | 622 | current = smoothingFactor * value + (1 - smoothingFactor) * current; | ||
| 19 | 622 | return current; | ||
| 20 | } | |||
| 21 | ||||
| 22 | 2 | void init(int length) { | ||
| 23 | 2 | setSmoothingFactor(2 / (length + 1.0)); | ||
| 24 | 2 | } | ||
| 25 | ||||
| 26 | 14 | void setSmoothingFactor(float p_smoothingFactor) { | ||
| 27 | 14 | smoothingFactor = p_smoothingFactor; | ||
| 28 | 14 | } | ||
| 29 | ||||
| 30 | void reset() { | |||
| 31 | current = 0; | |||
| 32 | smoothingFactor = 0.5; | |||
| 33 | } | |||
| 34 | ||||
| 35 | private: | |||
| 36 | float current = 0; | |||
| 37 | float smoothingFactor = 0.5; | |||
| 38 | }; | |||
| 39 |