  An iterative randomness extraction algorithm which generalized the Von
Neumann's extraction algorithm is detailed, analyzed and implemented in
standard C++. Given a sequence of independently and identically distributed
biased Bernoulli random variables, to extract randomness from the
aforementioned sequence pertains to produce a new sequence of independently and
identically distributed unbiased Bernoulli random variables. The iterative
construction here is inspired from the work of Stout and Warren 1984 who
modified appropriately the tree of probabilities produced by recursively
repeating the Von Neumann's extraction algorithm. The correctness of the
iterative algorithm is proven. The number of biased Bernoulli random variables
needed to produce one unbiased instance is the complexity of interest. The
complexity depends on the bias of the source. The expected complexity converges
toward 3.10220648... when the bias tends to 0 and diverges when the bias tends
to 1/2. In addition to the expected complexity, some other results that concern
the limiting asymptotic construction, and that seem unnoticed in the literature
so far, are proven.
