randomNormal method
Fills with N(0, std^2)
Implementation
void randomNormal(double std, {int seed = 42}) {
final rng = math.Random(seed);
for (var i = 0; i < data.length; i += 2) {
final u1 = rng.nextDouble().clamp(1e-12, 1.0);
final u2 = rng.nextDouble();
final r = math.sqrt(-2.0 * math.log(u1));
final theta = 2.0 * math.pi * u2;
data[i] = std * r * math.cos(theta);
if (i + 1 < data.length) data[i + 1] = std * r * math.sin(theta);
}
}