mixmax is hosted by Hepforge, IPPP Durham


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 10^100 steps apart. This is vastly superior to the usual practice of choosing random or non-ramdom 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 language etc... read the papers and try coding it from there. This software retains my copyright.

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.

GEANT4 interface: the default random number generator is MIXMAX, as of version 10.4
CLHEP starting with version (presentation by Gabriele Cosmo)
ROOT TRandom starting with version 6.04 has a MIXMAX interface!
GSL extension package: (here)
PYTHIA8 plugin to its default Random Number Generator class: (here)
Wikipedia page: here
The software has been verified and works fine on Apple's new CPU!

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