19 template <
typename T, std::
size_t S>
39 void clear(
const T& value = T()) {
40 for (
int i = 0; i < S; i++) buffer[i] = value;
45 void push(
const T& value) {
46 head = (head + 1) % S;
56 return buffer[(S + head - index) % S];
65 for (
int i = 0; i < n; i++) {
66 sum += buffer[(S + head - i) % S];
73 std::size_t
size()
const {
return S; }
データの蓄積器
Definition: accumulator.h:20
Accumulator(const T &value=T())
コンストラクタ
Definition: accumulator.h:26
const T & operator[](const std::size_t index) const
直近 index 番目の値を取得するオペレータ
Definition: accumulator.h:55
~Accumulator()
デストラクタ
Definition: accumulator.h:34
std::size_t size() const
リングバッファのサイズを返す関数
Definition: accumulator.h:73
const T average(const int n=S) const
直近 n 個の平均を取得する関数
Definition: accumulator.h:63
void push(const T &value)
最新のデータを追加する関数
Definition: accumulator.h:45
void clear(const T &value=T())
バッファをクリアする関数
Definition: accumulator.h:39
制御関係の名前空間
Definition: accel_curve.h:54