gaussianNoise function

double gaussianNoise(
  1. double mean,
  2. double standardDeviation, {
  3. Random? randomGenerator,
})

Implementation

double gaussianNoise(double mean, double standardDeviation,
    {math.Random? randomGenerator}) {
  const double pi2 = math.pi * 2.0;

  randomGenerator ??= math.Random();

  double r1 = randomGenerator.nextDouble();
  double r2 = randomGenerator.nextDouble();

  bool quadrant = randomGenerator.nextBool();

  return quadrant
      ? math.sqrt(-2.0 * math.log(r1)) *
              math.cos(pi2 * r2) *
              standardDeviation +
          mean
      : math.sqrt(-2.0 * math.log(r1)) *
              math.sin(pi2 * r2) *
              standardDeviation +
          mean;
}