spectral test
{{Short description|Statistical test for linear congruential generators}}
Image:Randu.png of 100,000 values generated with RANDU. Each point represents 3 consecutive pseudorandom values. It is clearly seen that the points fall in 15 two-dimensional planes.]]
The spectral test is a statistical test for the quality of a class of pseudorandom number generators (PRNGs), the linear congruential generators (LCGs).{{Citation | last1=Williams | first1=K. B. | last2=Dwyer | first2=Jerry | title=Testing Random Number Generators, Part 2 | url=http://drdobbs.com/184403208 | accessdate=26 Jan 2012 | date=1 Aug 1996 | journal=Dr. Dobb's Journal}}. LCGs have a property that when plotted in 2 or more dimensions, lines or hyperplanes will form, on which all possible outputs can be found.{{cite journal
|title=Random Numbers Fall Mainly in the Planes
|first=George |last=Marsaglia |authorlink=George Marsaglia
|journal=PNAS |date=September 1968 |volume=61 |issue=1 |pages=25–28
|doi=10.1073/pnas.61.1.25 |doi-access=free |bibcode=1968PNAS...61...25M |pmc=285899
|url=https://www.pnas.org/content/61/1/25.full.pdf |pmid=16591687
}} The spectral test compares the distance between these planes; the further apart they are, the worse the generator is.{{cite web|last1=Jain|first1=Raj|title=Testing Random-Number Generators (Lecture)|url=http://www.cse.wustl.edu/~jain/cse567-08/ftp/k_27trg.pdf|website=Washington University in St. Louis|accessdate=2 December 2016}} As this test is devised to study the lattice structures of LCGs, it can not be applied to other families of PRNGs.
According to Donald Knuth,{{Citation |last1=Knuth |first1=Donald E. |title=The Art of Computer Programming volume 2: Seminumerical algorithms |year=1981 |chapter=3.3.4: The Spectral Test |edition=2nd |publisher=Addison-Wesley |author1-link=Donald Knuth}}. this is by far the most powerful test known, because it can fail LCGs which pass most statistical tests. The IBM subroutine RANDUIBM, System/360 Scientific Subroutine Package, Version II, Programmer's Manual, H20-0205-1, 1967, p. 54.{{cite journal
|title=IBM/360 Scientific Subroutine Package (360A-CM-03X) Version III
|id=Scientific Application Program H20-0205-3
|publisher=IBM Technical Publications Department
|location=White Plains, NY
|year=1968
|volume=II
|doi=10.3247/SL2Soft08.001
|page=77
|url=http://www.ebyte.it/library/downloads/IBM_System360_SSP.pdf#page=81
|author=((International Business Machines Corporation))
|journal=Stan's Library
}} LCG fails in this test for 3 dimensions and above.
Let the PRNG generate a sequence . Let be the maximal separation between covering parallel planes of the sequence . The spectral test checks that the sequence does not decay too quickly.
Knuth recommends checking that each of the following 5 numbers is larger than 0.01.
\begin{aligned}
\mu_2 &= \pi \nu_2^2 / m, &
\mu_3 &= \frac{4}{3} \pi \nu_3^3 / m, &
\mu_4 &= \frac{1}{2} \pi^2 \nu_4^4 / m, \\[1ex]
& &
\mu_5 &= \frac{8}{15} \pi^2 \nu_5^5 / m, &
\mu_6 &= \frac{1}{6} \pi^3 \nu_6^6 / m,
\end{aligned}
where is the modulus of the LCG.
Figures of merit
Knuth defines a figure of merit, which describes how close the separation is to the theoretical minimum. Under Steele & Vigna's re-notation, for a dimension , the figure is defined as{{cite journal
|title=Computationally easy, spectrally good multipliers for congruential pseudorandom number generators
|first1=Guy L. Jr. |last1=Steele |author-link1=Guy L. Steele Jr.
|first2=Sebastiano |last2=Vigna |author-link2=Sebastiano Vigna
|journal=Software: Practice and Experience
|volume=52 |issue=2 |date=February 2022 |pages=443–458
|doi=10.1002/spe.3030 |doi-access=free
|arxiv=2001.05304 |orig-date=15 January 2020
|url=https://www.researchgate.net/publication/354960552
}} Associated software and data at https://github.com/vigna/CPRNG.{{rp|3}}
f_d(m, a) = \nu_d / \left(\gamma^{1/2}_d \sqrt[d]{m}\right),
where are defined as before, and is the Hermite constant of dimension d. is the smallest possible interplane separation.{{rp|3}}
L'Ecuyer 1991 further introduces two measures corresponding to the minimum of across a number of dimensions.{{cite journal
|first=Pierre |last=L'Ecuyer
|title=Tables of Linear Congruential Generators of Different Sizes and Good Lattice Structure
|journal=Mathematics of Computation |volume=68 |issue=225 |pages=249–260 |date=January 1999
|url=https://www.ams.org/journals/mcom/1999-68-225/S0025-5718-99-00996-5/S0025-5718-99-00996-5.pdf
|doi=10.1090/S0025-5718-99-00996-5
|bibcode=1999MaCom..68..249L
|citeseerx=10.1.1.34.1024}}
Be sure to read the [https://www.iro.umontreal.ca/~lecuyer/myftp/papers/latrules99Errata.pdf Errata] as well.
Again under re-notation, is the minimum for a LCG from dimensions 2 to , and is the same for a multiplicative congruential pseudorandom number generator (MCG), i.e. one where only multiplication is used, or . Steele & Vigna note that the is calculated differently in these two cases, necessitating separate values.{{rp|13}} They further define a "harmonic" weighted average figure of merit, (and ).{{rp|13}}
Examples
A small variant of the infamous RANDU, with has:{{rp|at=(Table 1)}}
class=wikitable |
d
|2 || 3 || 4 || 5 || 6 || 7 || 8 |
---|
ν{{su|p=2|b=d}}
| 536936458 || 118 || 116 || 116 || 116 |
μd
| 3.14 || 10−5 || 10−4 || 10−3 || 0.02 |
fd{{efn|name=SSSoft|Calculated using software from Steele & Vigna (2020), program "mspect" (src/spect.cpp, multiplicative mode).}}
|0.520224||0.018902||0.084143||0.207185||0.368841||0.552205||0.578329 |
The aggregate figures of merit are: , .{{efn|name=SSSoft}}
George Marsaglia (1972) considers as "a candidate for the best of all multipliers" because it is easy to remember, and has particularly large spectral test numbers.{{Citation |last=Marsaglia |first=GEORGE |title=The Structure of Linear Congruential Sequences |date=1972-01-01 |work=Applications of Number Theory to Numerical Analysis |pages=249–285 |editor-last=Zaremba |editor-first=S. K. |url=https://www.sciencedirect.com/science/article/pii/B9780127759500500133 |access-date=2024-01-29 |publisher=Academic Press |isbn=978-0-12-775950-0}}
class=wikitable |
d
|2 || 3 || 4 || 5 || 6 || 7 || 8 |
---|
ν{{su|p=2|b=d}}
| 4243209856 || 2072544 || 52804 || 6990 || 242 |
μd{{efn|Calculated from ν{{su|p=2|b=d}} reported by Marsaglia.}}
| 3.10 || 2.91 || 3.20 || 5.01 || 0.017 |
fd{{efn|name=SSSoft}}
|0.462490||0.313127||0.457183||0.552916||0.376706||0.496687||0.685247 |
The aggregate figures of merit are: , .{{efn|name=SSSoft}}
Steele & Vigna (2020) provide the multipliers with the highest aggregate figures of merit for many choices of m = 2n and a given bit-length of a. They also provide the individual values and a software package for calculating these values.{{rp|14–5}} For example, they report that the best 17-bit a for m = 232 is:
Additional illustration
{{multiple image
|width=300
|align=center
|direction=horizontal
|image1=Spectral test of 3x mod 31.png
|image2=Spectral test of 13x mod 31.png
|footer=Despite the fact that both relations pass the Chi-squared test, the first LCG is less random than the second, as the range of values it can produce by the order it produces them in is less evenly distributed.
}}
References
{{notelist}}
{{reflist}}
Further reading
- {{cite journal |last1=Entacher |first1=Karl |title=Bad subsequences of well-known linear congruential pseudorandom number generators |journal=ACM Transactions on Modeling and Computer Simulation |date=January 1998 |volume=8 |issue=1 |pages=61–70 |doi=10.1145/272991.273009}} – lists the (notated as in this text) of many well-known LCGs
- An expanded version of this work is available as: {{cite web |last1=Entacher |first1=Karl |title=A Collection of Selected Pseudorandom Number Generators With Linear Structures - extended version |url=https://www.researchgate.net/publication/2683298 |date=2001}}