MIXMAX generator
Class | pseudorandom number generator |
---|---|
Data structure | Array |
Worst-case performance | O(n) |
Best-case performance | O(n) |
Average performance | O(n) |
Worst-case space complexity | O(n) |
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 [math]\displaystyle{ 10^{4389} }[/math] and the Kolmogorov entropy is [math]\displaystyle{ 8679.2 }[/math] for the matrix size [math]\displaystyle{ N = 240 }[/math].[3] 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,[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.
References
- ↑ Savvidy, G.K; Ter-Arutyunyan-Savvidy, N.G (1991). "On the Monte Carlo simulation of physical systems". Journal of Computational Physics 97 (2): 566. doi:10.1016/0021-9991(91)90015-D. Bibcode: 1991JCoPh..97..566S.
- ↑ Savvidy, K. (2015). "The MIXMAX Random Number Generator". Computer Physics Communications 196: 161–165. doi:10.1016/j.cpc.2015.06.003. Bibcode: 2015CoPhC.196..161S.
- ↑ Savvidy, K.; Savvidy, G. (2015). "Spectrum and Entropy of C-systems MIXMAX Random Number Generator". Chaos, Solitons and Fractals 91: 33–38. doi:10.1016/j.chaos.2016.05.003. Bibcode: 2016CSF....91...33S.
- ↑ "boost". proj-www.boost.org. https://www.boost.org/doc/libs/1_76_0/boost/random/mixmax.hpp.
- ↑ "CLHEP". proj-clhep.web.cern.ch. http://proj-clhep.web.cern.ch/proj-clhep/.
- ↑ "Geant4". proj-clhep.web.cern.ch. 15 December 2022. https://gitlab.cern.ch/CLHEP/CLHEP/blob/develop/Random/src/MixMaxRng.cc.
- ↑ "ROOT - ROOT::Math::MixMaxEngine Class". root.cern.ch. https://root.cern.ch/doc/master/classTRandom.html.
- ↑ "PYTHIA - PYTHIA::Random::MixMaxRndm class". thep.lu.se. http://home.thep.lu.se/~bierlich/misc/keyword-manual/RandomNumbers.html.
- ↑ "Fastest random number generator could cut energy bills". commission.europa.eu/index_en. https://ec.europa.eu/research-and-innovation/en/projects/success-stories/all/fastest-random-number-generator-could-cut-energy-bills.
- ↑ L’Ecuyer, Pierre; Wambergue, Paul; Bourceret, Erwan (September 22, 2017). "Spectral Analysis of the MIXMAX Random Number Generators". http://www.iro.umontreal.ca/~lecuyer/myftp/papers/mixmax-lattice.pdf.
- ↑ Martirosyan, N.; Savvidy, K.; Savvidy, G. (Nov 19, 2018). "Spectral Test of the MIXMAX Random Number Generator". Chaos, Solitons and Fractals 118: 242–248. doi:10.1016/j.chaos.2018.11.024.
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.
- K. Anagnostopoulos, (2014). Computational Physics, Lulu.com, ISBN:978-1312464414.
Original source: https://en.wikipedia.org/wiki/MIXMAX generator.
Read more |