Class: | pseudorandom number generator |
Data: | Array |
Time: | O(n) |
Best-Time: | O(n) |
Average-Time: | O(n) |
Space: | O(n) |
Optimal: | Yes |
The MIXMAX generator is a family of pseudorandom number generators (PRNG) and is based on Anosov C-systems (Anosov diffeomorphism) and Kolmogorov K-systems (Kolmogorov automorphism). It was introduced in a 1986 preprint by G. Savvidy and N. Ter-Arutyunyan-Savvidy and published in 1991.[1]
A fast implementation in C/C++ of the generator was developed by Konstantin Savvidy.[2] It is genuine 64-bit generator. The period of the generator is
104389
8679.2
N=240
The generator works on most 64-bit systems, including 64-bit Linux flavors and Intel Mac. It has also been tested on PPC and ARM architectures. The latest version also runs on 32-bit systems and on Windows. The generator is equally usable with C++ programs,[4] has been chosen as the default generator in CLHEP[5] for use in Geant4[6] and there exists a ROOT interface [7] and a PYTHIA interface. [8] It has been recently tested extensively on very wide variety of platforms, as part of the CLHEP/Geant4 release. EU-funded MIXMAX project [9]
An analysis by L’Ecuyer, Wambergue and Bourceret,[10] see also,[11] showed that MIXMAX generators has a lattice structure when the produced random numbers are considered in n - dimensional space larger than the dimension N of the matrix generator, and only in that high dimensions n > N they lie on a set of parallel hyperplanes and determined the maximum distance between the covering hyperplanes.