class RunningAverage {
public:
- // Constructor
- RunningAverage() {}
-
// Reset the running average to rational value p / q
void set(int64_t p, int64_t q)
{ average = p * PERIOD * RESOLUTION / q; }
{ average = RESOLUTION * v + (PERIOD - 1) * average / PERIOD; }
// Test if average is strictly greater than rational a / b
- bool is_greater(int64_t a, int64_t b)
- { return b * average > a * PERIOD * RESOLUTION ; }
+ bool is_greater(int64_t a, int64_t b) const
+ { return b * average > a * (PERIOD * RESOLUTION); }
- int64_t value()
+ int64_t value() const
{ return average / (PERIOD * RESOLUTION); }
private :