Monday, June 28, 2021

TestU01

While doing a bit of browsing on the Internet, I followed some links and came to a (relatively) ancient document: Pierre L'Ecuyer and Richard Simard. TestU01: A Software Library in ANSI C for Empirical Testing of Random Number Generators: User's guide, compact version. Département d'Informatique et de Recherche Opérationnelle, Université de Montréal, May 2013..

I guess it's truth-in-labelling, but I must confess that it's a bit startling when the "User's guide, compact version" runs to 219 pages!

But if you're at all interested in Random Number Generators, this is some amazing stuff. From the prologue:

TestU01 started as a Pascal program implementing the tests suggested in the 1981 edition of volume 2 of “The Art of Computer Programming”. This was around 1985. Three or four years later, a Modula-2 implementation was made, in the form of a library with a modular design. Other tests were added, as well as some generators implemented in generic form. Between 1990 and 2001, new generators and new tests were added regularly to the library and a detailed user’s guide (in french) was kept up to date. The f modules, which contain tools for testing entire families of generators, were introduced in 1997, while the first author was on sabbatical at the University of Salzburg, Austria. In 2001 and 2002, we partially redesigned the library, translated it in the C language, and translated the user’s guide in english.

These preliminary versions of the library were used for several articles (co)authored by P. L’Ecuyer, starting from his 1986 paper where he first proposed a combined LCG.

I love the brutal honesty that, after 28 years of effort, they considered that they had only achieved a "preliminary version of the library".

Random Number Generation is deep indeed, perhaps among the deepest of modern intellectual studies.

Anyway, I didn't know about this amazing effort until now, so here I am, some 36 years later, sharing it with those few who might not yet know of its existence.

No comments:

Post a Comment