exponentialSample function

List<double> exponentialSample(
  1. int sampleSize,
  2. num mean, {
  3. int? seed,
})

Returns a random sample of length sampleSize following an exponential distribution.

  • mean must be larger than zero,
  • seed is optional (seeds the random number generator)
  • The generator uses inversion sampling.

Implementation

List<double> exponentialSample(
  int sampleSize,
  num mean, {
  int? seed,
}) {
  if (mean <= 0) {
    throw ErrorOfType<InvalidFunctionParameter>(
      message: 'Error in function '
          'exponentialSample($sampleSize, $mean, seed: $seed).',
      expectedState: 'mean > 0',
      invalidState: 'mean = $mean',
    );
  }
  final random = Random(seed);
  return List<double>.generate(
      sampleSize, (_) => -mean * log(1.0 - random.nextDouble()));
}