The code mt19937.c internally generates unsigned long
(32 bits) integers which (seems to) uniformly distribute
between 0 to 2^32-1, then transform them into real [0,1] numbers
by dividing 2^32-1.
genrand() returns a real number (double, 32-bit precision)
for each call.
To initialize, one needs to call the function
sgenrand(seed) with an unsigned long integer seed.
Seed should not be ZERO.
Different seeds give different sequences.
To generate unsigned long integers,
change the type of the return value of genrand() into
unsigned long, and change the "return()" sentence
in this function into "return(y)".
This code is a free ware
under the terms of GNU Library General Public License.