invertOrdinary function

List<double> invertOrdinary(
  1. List<double> base,
  2. List<double> diffs,
  3. int d
)

Invert nonseasonal differencing

Implementation

List<double> invertOrdinary(List<double> base, List<double> diffs, 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++) {
    double last = hist.last;
    final inv = <double>[];
    for (final v in cur) { last += v; inv.add(last); }
    restored = inv;
    hist = hist + inv;
    cur = restored;
  }
  return restored;
}