commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Herbert <>
Subject Re: [Rng] Merge outstanding PRs for construction speed baseline
Date Fri, 15 Mar 2019 13:03:43 GMT
I think the summary of this thread on outstanding PRs is:

> RNG-82: Add XorShift1024StarPhi generator
> RNG-70: Add new XoShiRo generators

Merge but:

- Ensure those generators with more than one constructor build the same sequence if the seed
data is the same. This is to satisfy package requirement that "The "provider" must specify
one way for setting the seed. For a given seed, the generated sequence must always be the

The new generators have utility constructors where for example an int[] seed of length 2 can
be specified as 'int seed0, int seed1'. This is just a different way to specify and set the
same exact seed. So this is OK. However using 'long seed0, long seed1' would not be OK as
this is not the same seed data.

- Test the correlation between XorShift1024Star and XorShift1024StarPhi and possibly mark
XOR_SHIFT_1024_S deprecated

The test for this is outstanding. A composite fails DieHarder. It passes BigCrush but there
is a possible issue with passing the int sequence to the TestU01 BigCrush test suite that
is under investigation.

> RNG-81: NumberFactory to sample all rationals between 0 and 1.


> RNG-78: Added a ThreadLocalRandomSource.


Then update all the benchmarks to include the new providers.

Note: A separate thread is discussing the order for benchmark reports. This is whether the
order of the generators in the quality benchmarks should match the order of the RandomSource
enum. Currently it does not (this requires some simple file rearrangement) but all new generators
should be added to the end of the benchmark list so the existing report output files are not

Save the commit tag for a speed benchmark reference.

> RNG-76: Added primitive long constructor to SplitMix64

Merge as the first commit for improving the construction speed benchmarking.

Then update the ProviderBuilder with ideas to improve RNG construction… (Note: with no breaking
changes ;) )


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

View raw message