piecewise<T> function
Creates a piecewise interpolator from a list of values.
Implementation
Interpolator<T> piecewise<T>(
List<T> values,
Interpolator<T> Function(T, T) interpolate,
) {
final n = values.length - 1;
return (double t) {
if (t <= 0) return values.first;
if (t >= 1) return values.last;
final i = (t * n).floor();
final localT = t * n - i;
return interpolate(values[i], values[i + 1])(localT);
};
}