Gaussian Random Number Generators
3. ALGORITHMS FOR GAUSSIAN TAIL SAMPLES
3.1. Accurate Floating Point URNGs
Most
uniform
random
number
generators
produce
integer
values
,
while
most
Gaus
sian
random
number
generators
require
floating-point
inputs
.
The
standard
method
for
converting
a
w
-bit
integer
,
I
,
t
o
floating-point
is
simply
to
multiply
by
the
floating-point
constant
2
−
w
.
F
igure
7
F
igure
7
demonstrates
why
this
method
ma
y
lead
to
problems
for
GRNGs
,
particularly
near
zero
.
In
F
igure
7(a)
the
represent table
values
of
4-bit
fraction
floating-point
numbers
are
shown.
F
o
r
floating-
point,
accuracy
improves
as
zero
is
approac
hed.
F
ig
ure
7(b)
shows
the
represent table
numbers
for
a
5-bit
fixed-point
value
,
where
the
accu
racy
is
the
same
over
the
entire
range
.
In
F
igure
7(c)
the
result
of
converting
from
fixed-
point
to
floating-point
is
shown,
showing
how
the
resulting
values
inherit
the
worst
of
both
worlds
,
with
lower
precision
near
zero
due
to
the
original
fixed-point
value
,
and
low
precision
near
one
,
due
to
the
floating-point
representation.
An
ideal
U
(0,
1)
random
number
generator
should
generate
every
floating-point
value
with
appropriate
proba
bilit
y
,
but
if
a
32-bit
number
is
converted
directly
to
floating-point
through
scaling
then the
smallest
number
generated
is
only
2
−
32
.
I
f
this
were
transformed
to
the
Gaussian distribution
using