commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <>
Subject [RNG] Scope of "Commons RNG"
Date Wed, 21 Sep 2016 12:46:12 GMT

This is a post to ask about what we want "Commons RNG"
to be (as a service to the users).

In the Wikipedia pages referred to in the following
the take-away message (IIUC) is that LCG and LFG are
almost never to be used.[1]

If we want "Commons RNG" to be a repository of all
generators that exist out there, irrespective of their
known weaknesses, it's fine; but we should be careful to
not let casual users just pick one of the implementations
on the premise that the library focuses on high quality

On the other hand, we could be wary of adding code[2]
that we'd then recommend to not use...

If, from some POV, it is deemed useful to have those,
the scope and overview of the component should mention,
prominently, the "caveat".[3]

I have no issue with adding any new implementation,[4]
on the conditions that it comes with
  1. a unit test where the output (say, a few hundred
     numbers) of "Commons RNG" is compared against a
     "reference" implementation,[5]
  2. the outputs of the "RandomStressTester"[6] piping
     from the "Dieharder" and "TU01/BigCrush" actual
     stress test suites.[7]

We should add a note to that effect somewhere in the
documentation, perhaps in "" (?).


[1] Emmanuel, if you don't mind, we'd thus set the JIRA
     issue "type" to "wish" rather than "improvement".
[3] Up to now, I had assumed that no known-to-be-bad
     generators would be part of "Commons RNG" (except
     "JDK", for reference purposes).
[4] It is not a problem to wait another couple of weeks
     for the additional code, before releasing 1.0.
[5] I.e. _not_ a "pre-run" of the same implementation!
[6] Source is in "src/userguide/java".
[7] Those software have to be installed separately.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message