variance method
Returns the (population) variance of this Iterable, or double.nan if the iterable contains less than 2 (1 for population variance) values.
For details, see https://en.wikipedia.org/wiki/Variance.
Example: [2, 5].variance()
returns 4.5
.
Implementation
double variance({bool population = false}) {
var count = 0, mean = 0.0, m2 = 0.0;
for (final value in this) {
count++;
final delta = value - mean;
mean += delta / count;
final delta2 = value - mean;
m2 += delta * delta2;
}
final divisor = population ? count : count - 1;
return divisor < 1 ? double.nan : m2 / divisor;
}