Each function instantiated
from the template
described in this subclause [rand.util.canonical]
maps the result of one or more invocations
of a supplied uniform random bit generator g
to one member
of the specified RealType
such that,
if the values gi
produced by g
are uniformly distributed,
the instantiation's results
tj, 0≤tj<1,
are distributed as uniformly as possible
as specified below.
Obtaining a value in this way
can be a useful step
in the process of transforming
a value generated by a uniform random bit generator
into a value
that can be delivered by a random number distribution.
Complexity: Exactly
k=max(1,⌈b/log2R⌉)
invocations
of g,
where b252
is the lesser of numeric_limits<RealType>::digits
and bits,
and
R is the value of g.max()−g.min()+1.