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. The first realization of MIXMAX generator as a Fortran code, as well the first statistical tests were performed by Norayr Akopov. The abbreviation MIXMAX for the created generator was first introduced in this article. A fast implementation in C/C++ of the generator was developed by Konstantin Savvidy. The generator outputs numbers in the interval [1 . . 261]. The period of the generator is 10 4389 {\displaystyle 10^{4389}} and the Kolmogorov entropy is 8679.2 {\displaystyle 8679.2} for the matrix size N = 240 {\displaystyle N=240} . That generator occupies less than 2 kb, and if a smaller generator state is required, a N = 17 version with less than 200 bytes memory requirement also exists. 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, has been chosen as the default generator in CLHEP for use in Geant4 and there exists a ROOT interface and a PYTHIA interface. It has been recently tested extensively on very wide variety of platforms, as part of the CLHEP/Geant4 release. EU-funded MIXMAX project An analysis by L’Ecuyer, Wambergue and Bourceret, see also, 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. The generator multiplies a vector on the Galois field with 261 − 1 elements by a matrix on the same field, and coordinates of the vector are returned, incremented to obtain the target range. In view of the failures with collision tests reported by L’Ecuyer, Wambergue and Bourceret and subsequent failures on PractRand tests, the currently published generator has been patched: the first coordinate of the vector is never used, and the MIXMAX256 generator has been decimated so to emit one output each three (i.e., two outputs on three are discarded). Being linear on the base Galois field, all MIXMAX variants fail the modular rank and the modular linear-complexity tests. This statistical bias can surface unexpectedly in linear-algebra computations, similarly to what happens with generators that are linear on the two-element Galois field. This linearity is not contradicted by the chaoticity of the associated dynamical systems, as the points with a chaotic trajectory are those with irrational coordinates, whereas MIXMAX is based on the linear trajectory of rational points, which have a periodic behavior.
References
External links The open source MIXMAX C/C++ source code on hepforge.org William L. Dunn, J. Kenneth Shultis, (2022). Exploring Monte Carlo Methods, 2nd edition, Elsevier Science, ISBN 978-0-12-819739-4.


