MIXMAX is the matrix-recursive random number generator introduced by my parents in:
Please kindly let me know of your experiences.
On the Monte Carlo Simulation of Physical Systems
J.Comput.Phys. 97, 566 (1991),
Matrix Generator of Pseudorandom Numbers
J.Comput.Phys.97, 573 (1991),
Some of the algorithms used in this implementation, plus the theory behind the period is in my paper:
The MIXMAX random number generator
Comp. Phys. Commun. 196 (2015) 161
(DOI link) (Arxiv link)
Underlying MIXMAX is the theory of dynamical systems, more precisely of Kolmogorov's K-systems.
Therefore, the floating point numbers generated by MIXMAX carry strong theoretical guarantees.
This, and the fact that it passes all non-contrived tests of randomness,
makes MIXMAX suitable for large scale Monte-Carlo simulations.
The generator is now mature and has proven itself over the years.
The more recent versions include the code for skipping,
which we strongly suggest for seeding and parallelization of Monte-Carlo.
It is guaranteed that even if the user seeds from sequential seeds, e.g. 1,2,3... the initial vectors are independent and are located on the
MIXMAX trajectory at least steps 10^100 apart.
This is vastly superior to the usual practice
of choosing random or nonramdom seeds
and hoping that the generator would not produce a collision in the streams produced from different seeds.
There is a rather detailed Manual available.
The latest release is 2.0, with a new combination of parameters! (August 29, 2016)
The new release contains some small improvements to the C code, plus a beta of the new C++ implementation,
which contains among other conveniences a C++11 standard interface.
This version also includes a GSL interface out of the box.
or the archived releases:
If you got any version below 1.0, please switch!
There are a number of improvements to speed, compared to the versions before 1.0.
Latest news: ROOT starting with version 6.04 has MIXMAX interface!
Also, there is a GEANT interface via CLHEP starting with version 188.8.131.52
Email me, Konstantin Savvidy, k.savvidis @at@ cern.ch