#pragma once class ExpMovAvg { public: ExpMovAvg(int* in_i, int* out_o, float lambda = 0.5) : _in_ptr(in_i), _out_ptr(out_o), _lambda(lambda) {;} inline void calculate() { _ema = _lambda * (float)(*_in_ptr) + (1 - _lambda) * _ema; *_out_ptr = _ema; } int *_in_ptr, *_out_ptr; int _ema; float _lambda; };