exponentialSample function
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()));
}