invertSeasonal function

List<double> invertSeasonal(
  1. List<double> base,
  2. List<double> diffs,
  3. int s,
  4. int D,
)

Invert seasonal differencing (s-period feedback)

Implementation

List<double> invertSeasonal(List<double> base, List<double> diffs, int s, int D) {
  if (D == 0) return List<double>.from(diffs);
  var cur = List<double>.from(diffs);
  var hist = List<double>.from(base);
  List<double> restored = [];
  for (int k=0; k<D; k++) {
    final inv = <double>[];
    for (final v in cur) {
      final back = hist[hist.length - s]; // s adım önceki seviye
      final val = back + v;
      inv.add(val);
      hist.add(val);
    }
    restored = inv;
    cur = restored;
  }
  return restored;
}