1
0
forked from me/IronOS

Format headers

This commit is contained in:
Ben V. Brown
2021-01-17 10:53:49 +11:00
parent f786901da0
commit bf5055edaa
173 changed files with 42831 additions and 47623 deletions

View File

@@ -11,31 +11,28 @@
#include <stdint.h>
// max size = 127
template<class T, uint8_t SIZE>
struct history {
static const uint8_t size = SIZE;
T buf[size];
int32_t sum;
uint8_t loc;
template <class T, uint8_t SIZE> struct history {
static const uint8_t size = SIZE;
T buf[size];
int32_t sum;
uint8_t loc;
void update(T const val) {
// step backwards so i+1 is the previous value.
void update(T const val) {
// step backwards so i+1 is the previous value.
sum -= buf[loc];
sum += val;
buf[loc] = val;
loc = (loc + 1) % size;
}
sum -= buf[loc];
sum += val;
buf[loc] = val;
loc = (loc + 1) % size;
}
T operator[](uint8_t i) const {
// 0 = newest, size-1 = oldest.
i = (i + loc) % size;
return buf[i];
}
T operator[](uint8_t i) const {
// 0 = newest, size-1 = oldest.
i = (i + loc) % size;
return buf[i];
}
T average() const {
return sum / size;
}
T average() const { return sum / size; }
};
#endif /* HISTORY_HPP_ */
#endif /* HISTORY_HPP_ */