Gaussian sampling
Gaussian sampling consists of extracting a sample from a population with a distribution that follows a Gaussian or normal distribution. This section describes a commonly used algorithm known as the Box-Muller transform to generate accurate Gaussian sampling from a uniform random generator [8:2].
Box-Muller transform
The purpose of the Box-Muller scheme is to generate a sample of normal distribution (Gaussian distribution of mean 0 and variance 1) from two independent samples following uniform random distributions. Let's consider u1, u2 two uniformly distributed random distribution over the interval [0, 1], then the following random variables:
are two independent standard normal distribution variables.
The class BoxMuller
implements the Box-Muller transform. The class takes two arguments; a function r
that generates uniformly distributed random values over [0, 1] (line 1) and a flag, cosine
, that selects either the cosine or sine function for the normal sample values (line 2...