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
produced by g
are uniformly distributed,
the instantiation's results
, ,
are distributed as uniformly as possible
as specified below.

[ Note

: *end note*

]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.

— ```
template<class RealType, size_t bits, class URBG>
RealType generate_canonical(URBG& g);
```