Efficient implementation of Bailey and Borwein pseudo-random number generator based on normal numbers

Published: 01-08-2013| Version 1 | DOI: 10.17632/cz3jx79smw.1
Gleb Beliakov,
Doug Creighton,
M. Johnstone,
T. Wilkin


Abstract This paper describes an implementation of a Linear Congruential Generator (LCG) based on the binary representation of the normal number 2_(,3), and of a combined generator based on that LCG. The base LCG with the modulus 3^(33)provides a quality sequence with the period ≈3.7ṡ10 ^(15), which passes all but two statistical tests from BigCrush test suite. We improved on the original implementation by adapting Barrett's modular reduction method, which resulted in four-fold increase in effi... Title of program: BCNRandom Catalogue Id: AEPG_v1_0 Nature of problem This is a fast pseudorandom number generator based on normal numbers, with long period and good statistical properties. It passes all 106 BigCrush statistical tests and is faster than C standard library rand generator. Suitable for parallel execution by multiple threads and/or processes because of skip ahead property. Versions of this program held in the CPC repository in Mendeley Data AEPG_v1_0; BCNRandom; 10.1016/j.cpc.2013.03.019 This program has been imported from the CPC Program Library held at Queen's University Belfast (1969-2018)