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 u_1, u_2, \dots. Let 1/\nu_t be the maximal separation between covering parallel planes of the sequence \{(u_{n+1:n+t}) \mid n = 0, 1, \dots\}. The spectral test checks that the sequence \nu_2, \nu_3, \nu_4, \dots 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 m is the modulus of the LCG.

Figures of merit

Knuth defines a figure of merit, which describes how close the separation 1/\nu_t is to the theoretical minimum. Under Steele & Vigna's re-notation, for a dimension d, the figure f_d 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 a, m, \nu_d are defined as before, and \gamma_d is the Hermite constant of dimension d. \gamma^{1/2}_d \sqrt[d]{m} is the smallest possible interplane separation.{{rp|3}}

L'Ecuyer 1991 further introduces two measures corresponding to the minimum of f_d 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, \mathcal{M}^+_d(m, a) is the minimum f_d for a LCG from dimensions 2 to d, and \mathcal{M}^*_d(m, a) is the same for a multiplicative congruential pseudorandom number generator (MCG), i.e. one where only multiplication is used, or c = 0. Steele & Vigna note that the f_d is calculated differently in these two cases, necessitating separate values.{{rp|13}} They further define a "harmonic" weighted average figure of merit, \mathcal{H}^+_d(m, a) (and \mathcal{H}^*_d(m, a)).{{rp|13}}

Examples

A small variant of the infamous RANDU, with x_{n+1} = 65539 \, x_n \bmod 2^{29} 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: \mathcal{M}^{*}_8(65539, 2^{29}) = 0.018902, \mathcal{H}^{*}_8(65539, 2^{29}) = 0.330886.{{efn|name=SSSoft}}

George Marsaglia (1972) considers x_{n+1} = 69069 \, x_n \bmod 2^{32} 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: \mathcal{M}^{*}_8(69069, 2^{32}) =0.313127, \mathcal{H}^{*}_8(69069, 2^{32}) = 0.449578.{{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 f_d 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:

  • For an LCG (c ≠ 0), {{tt|0x1dab5}} (121525). \mathcal{M}^{+}_8=0.6403, \mathcal{H}^{+}_8 = 0.6588.{{rp|14}}
  • For an MCG (c = 0), {{tt|0x1e92d}} (125229). \mathcal{M}^{*}_8=0.6623, \mathcal{H}^{*}_8 = 0.7497.{{rp|14}}

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 f_d (notated as S_s 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}}

Category:Pseudorandom number generators