14#ifndef MOVINGDIFFERENTIATOR
15#define MOVINGDIFFERENTIATOR
18#include "RingBuffer.hh"
27 #define arcs_assert(a) (assert(a))
30 #define EventLogVar(a)
37template <
size_t W,
typename T =
double>
42 : VarWindow(), TimeWindow(), FirstTime(true)
50 : VarWindow(r.VarWindow), TimeWindow(r.TimeWindow), FirstTime(r.FirstTime)
64 double GetSignal(
const double Var,
const double Time){
67 VarWindow.FillBuffer(Var);
73 const T dx = Var - VarWindow.GetFinalValue();
76 VarWindow.SetFirstValue(Var);
90 template<
size_t NN,
size_t MM>
94 VarWindow.FillBuffer(Var);
100 const T dx = Var - VarWindow.GetFinalValue();
103 VarWindow.SetFirstValue(Var);
行列/ベクトル計算クラス(テンプレート版)
Definition Matrix.hh:44
static constexpr Matrix zeros(void)
m行n列の零行列を返す関数
Definition Matrix.hh:648
移動微分器
Definition MovingDifferentiator.hh:38
void Reset(void)
リセット
Definition MovingDifferentiator.hh:110
Matrix< NN, MM > GetSignal(const Matrix< NN, MM > &Var, const double Time)
微分値を計算する関数(行列版)
Definition MovingDifferentiator.hh:91
MovingDifferentiator(MovingDifferentiator &&r)
ムーブコンストラクタ
Definition MovingDifferentiator.hh:49
~MovingDifferentiator()
デストラクタ
Definition MovingDifferentiator.hh:56
double GetSignal(const double Var, const double Time)
微分値を計算する関数(double版)
Definition MovingDifferentiator.hh:64
MovingDifferentiator()
コンストラクタ
Definition MovingDifferentiator.hh:41
リングバッファクラス
Definition RingBuffer.hh:51
T GetFinalValue(void)
バッファから最後尾の値を取り出す関数
Definition RingBuffer.hh:128
void SetFirstValue(const T &u)
値をバッファの先頭に格納する関数
Definition RingBuffer.hh:80
void FillBuffer(const T &u)
バッファを指定値で埋める
Definition RingBuffer.hh:160