interpolate<T extends num> function
Returns a sequence of vectors
by interpolating between
start
and end
.
The resulting sequence is linearly related to temperatures
.
Implementation
List<List<T>> interpolate<T extends num>(
List<num> temperatures,
List<T> start,
List<T> end,
) {
final a = (start - end) / (temperatures.first - temperatures.last);
final b = start -
(start - end) *
(temperatures.first / (temperatures.first - temperatures.last));
return List<List<T>>.generate(
temperatures.length,
(i) => T == int
? (a * temperatures[i]).plus(b).toListOfInt() as List<T>
: (a * temperatures[i]).plus(b) as List<T>);
}