16 lines
324 B
C
16 lines
324 B
C
|
|
#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;
|
||
|
|
|
||
|
|
};
|