An independent_bits_engine
random number engine adaptor
combines random numbers
that are produced by some base engine e,
so as to produce random numbers
with a specified number of bits w.
The state xi
of an independent_bits_engine
engine adaptor object x
consists of
the state ei of its base engine e;
the size of the state is
the size of e's state.
The transition algorithm
is carried out by invoking e()
as often as needed to obtain n0
values less than y0+e.min()
and n−n0 values less than y1+e.min().
The generation algorithm
uses the values produced
while advancing the state as described above
to yield a quantity S
obtained as if by the following algorithm:
S=0;
for(k=0; k≠n0; k+=1){dou= e()- e.min(); while(u≥y0);
S=2w0⋅S+umod2w0;
}for(k=n0; k ≠ n; k+=1){dou= e()- e.min(); while(u≥y1);
S=2w0+1⋅S+umod2w0+1;
}