The linear congruential generator consists of the following four numbers :
mod m
These numbers should be chosen in such a way, that the random number stream provides a long cycle time and has good statistical properties. The library combines three generators :
The random number then comes from the formula :
The implementation in the library (the generator::random method) rewrites these formulas to ensure compatibility of this method. This generator has a period of , which means that you won't get a cycle. Furthermore, it has passed several statistical tests.