invertSeas function
Implementation
List<double> invertSeas(List<double> history, List<double> diffs, int s, int D) {
if (D <= 0 || s <= 1) return List<double>.from(diffs);
var base = List<double>.from(history);
var cur = List<double>.from(diffs);
for (int k = 0; k < D; k++) {
final out = List<double>.from(base);
for (int i = 0; i < cur.length; i++) {
final idx = out.length - s;
final prevS = idx >= 0 ? out[idx] : 0.0;
out.add(prevS + cur[i]);
}
base = out;
cur = out.sublist(history.length);
history = List<double>.from(out);
}
return history.sublist(history.length - diffs.length);
}