MIXMAX is hosted by Hepforge, IPPP Durham

MIXMAX

MIXMAX is the matrix-recursive random number generator introduced by my parents in:

On the Monte Carlo Simulation of Physical Systems
J.Comput.Phys. 97, 566 (1991), (DOI link)

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.

Please kindly let me know of your experiences.


The latest release is 2.0, with a new combination of parameters (link to paper here)! (September 1, 2017)
The new release contains some small improvements to the C code, plus a new C++ implementation,
which contains among other conveniences a C++11 standard interface (std::random).

Having said that, it will compile under slighly older compilers, e.g. g++4.6 with the -std=c++0x switch. The C version still compiles on gcc3.3, even on PPC and ARM. This version also includes a GSL interface out of the box. The software remains free, but it is no longer licensed under LGPL, so if you are interested to package it with some other software or distribution please contact me. If you are interested to reimplement it, modify it, code it in another computer langauge etc... read the papers and try coding it from there. This software retains my copyright.
DOWNLOAD:
mixmax_release_200final.zip
or the archived releases:
http://www.hepforge.org/downloads/mixmax

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 2.3.1.1

Email me, Konstantin Savvidy, ksavvidis @at@ gmail.com