ACORN random numbers

ACORN is the Additive COngruential Random Number generator, a family of PRNGs (Pseudo-Random Number Generators) discovered by Roy Wikramaratna in 1984 and first published in 1989 - see the references and history.

Over a period of more than thirty years, Roy has studied ACORN theoretically and empirically, published these studies, and made use of ACORN in geostatistical, oil reservoir modelling, and probabilistic risk assessment applications.

ACORN has been implemented in various contexts, notably in GSLIB and in the NAG FORTRAN routines. Although progress may appear to have been slow, the author believes that ACORN is as strong as, or better than, most of the commonly used PRNGs.

"This site presents my work, and exposes ACORN to a wider public. My aim here is to challenge others working in this field to assess, critique and use the Additive Congruential Random Number generator." — Roy W.

 introduction to the ACORN algorithm.


robust

Many of the commonly-used PRNGs fail in one or more parts of the current test suites for sequences of random numbers.

ACORN is strong, in the sense that ACORN has been demonstrated in 2018 to pass all the tests in the TestU01 test suite (provided a few very simple constraints on the choice of ACORN parameters k and M, and on the initialisation are adhered to) - this result was presented as a poster at the meeting 'Numerical algorithms for high-performance computational science', 8-9 April 2019, The Royal Society, London, and will soon be published as an article.

 outline of test results and current research.
 link to poster (8-9 April 2019)

pseudo-random numbers

ACORN is reproducible: this means it will generate exactly the same sequence when the initial conditions are identical. This is important for numerical analysis and stochastic modelling: specific models and tests can then be run repeatedly, without having to store the whole sequence of pseudo-random numbers that was used.

On the other hand, changing the seed (and if desired the other initial conditions) gives rise to a completely different sequence having the same statistical properties. ACORN will generate extremely large numbers of very long sequences with known and very long period, all having very consistent statistical behaviour.

the ACORN concept and algorithm.

simple, easy, lightweight

ACORN is extremely easy to implement in integer arithmetic and using only a small number of lines of code, giving consistent reproducible results across commonly-used languages (such as FORTRAN, C, JavaScript, ...) running on different platforms.

 examples of code and instructions for implementation.

critique

ACORN is robust and with an appropriate choice of parameters and initialisation appears to pass all the tests in the TestU01 test suite for uniformly distributed PRNGs. This result will shortly be published by Roy, following fresh empirical testing with the latest version of the TestU01 test suite in 2018.

However there have been few external independent studies of ACORN.

 advantages, and provisos which have been identified for ACORN.

history

 history of the development of the ACORN algorithm, including theoretical analysis and proofs, empirical analysis, and practical applications.

author

Roy Wikramaratna invented ACORN in 1984, published in 1989 and has worked in his spare time for some forty years, on this and other mathematical research.

 biographical information about Roy

references

Several papers have been published about ACORN. In addition, it has been included in GSLIB and in NAG FORTRAN routines.

 the published articles, citations in other works, and other links.



All information on this site © 2019 Roy Wikramaratna.
You may use all information for research and teaching purposes (with due acknowledgement).
For business or commercial or other use for gain, see contact page.
created 2019-01-31 / updated 2019-03-31