It's clear that mm32 fails statistical tests such as the binary rank test. There are theoretical results claiming Lagged Fibonacci generators with addition modulo 2 must fail the binary rank test. (See "Matrices and the Structure of Random Number Sequences" by George Marsaglia and Liang-Huei Tsay, 1985.) But these Lagged Fibonacci generators with addition modulo 2 are not mm32. The generator mm32 implemented in PractRand is actually F(24, 55, +) in Marsaglia and Tsay's notation. Knuth [section 3.2.2,...
It's clear that mm32 fails statistical tests such as the binary rank test. There are theoretical results claiming Lagged Fibonacci generators with addition modulo 2 must fail the binary rank test. (See "Matrices and the Structure of Random Number Sequences" by George Marsaglia and Liang-Huei Tsay, 1985.) But these Lagged Fibonacci generators with addition modulo 2 are not mm32. The generator mm32 implemented in PractRand is actually F(24, 55, +) in Marsaglia and Tsay's notation. Knuth [section 3.2.2,...
mm32 is short for Mitchell-Moore algorithm on 32 bit integers. Unfortunately, there are actually multiple different (largely unrelated) algorithms I've seen referred to by that name, apparently those two published a bit. It's basically a medium-large lagged sum PRNG. I think I might have gotten if from an early eddition of Knuth? Very possible as Knuth does mention it. Section 3.2.2, page 26, chapter 3, volume 2, 2nd edition. It seems that X_{n + 1} = (X_n + X_{n - k} mod m where k is "a comparatively...
mm32 is short for Mitchell-Moore algorithm on 32 bit integers. Unfortunately, there are actually multiple different (largely unrelated) algorithms I've seen referred to by that name, apparently those two published a bit. It's basically a medium-large lagged sum PRNG. I think I might have gotten if from an early eddition of Knuth? Very possible as Knuth does mention it. Section 3.2.2, page 26, chapter 3, volume 2, 3rd edition. It seems that X_{n + 1} = (X_n + X_{n - k} mod m where k is "a comparatively...
I'm about to end my search as I'm not sure I'm going to wait for an STS run of 1 or 2 gigabits. I'm running a 1 gigabit sample size now, but I don't know if this will take just 16 hours or less. Can't run it with sample size 1073741824. It core-dumps. So typical. %gdb assess core GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git [...] Reading symbols from assess...done. [New LWP 32403] Core was generated by `./assess 1073741824'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000556566812514...
I'm about to end my search as I'm not sure I'm going to wait for an STS run of 1 or 2 gigabits. I'm running a 1 gigabit sample size now, but I don't know if this will take just 16 hours or less. Can't run that sample size. It core-dumps. So typical. %gdb assess core GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git [...] Reading symbols from assess...done. [New LWP 32403] Core was generated by `./assess 1073741824'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000556566812514...
Good morning. Confirming your notes, mm32 seems to be a false negative by STS. https://pastebin.com/raw/xCDSrQLL (I'm considering the OverlappingTemplate as broken at this sample size.) Let's do some calculations to make sure the comparison has a minimum of fairness. STS is analysing 256 megabits for each of the 32 samples, so that's 256 * 32 * 2^20 bits which is 8 gigabits. Under the analysis of PractRand, mm2 fails at 256 megabytes which is 2 gigabits. SmallCrush consumes roughly 908004792 bytes...
I finally completed the STS run of ranrot32 with seed 0. Here is the results: STS on ranrot32: https://pastebin.com/raw/aMAb7w9a It also passes SmallCrush and Crush: ========= Summary results of SmallCrush ========= Version: TestU01 1.2.3 Generator: ranrot32-seed-0 Number of statistics: 15 Total CPU time: 00:00:07.38 All tests were passed ========= Summary results of Crush ========= Version: TestU01 1.2.3 Generator: reports/ranrot32-seed-0-medium.txt Number of statistics: 144 Total CPU time: 00:35:23.19...