Type 
Changes 
By 

"SeedFactory": Use XoRoShiRo1024PlusPlus as the default source of randomness. Fixes RNG122. 
aherbert 

"ChengBetaSampler": Algorithms for different distribution parameters have
been delegated to specialised classes. Fixes RNG121. 
aherbert 

Update security of serialization code for java.util.Random instances. Implement
lookahead deserialization or remove the use of ObjectInputStream.readObject(). Fixes RNG120. 
aherbert 

"SplitMix64": Added primitive long constructor. Fixes RNG76. 
aherbert 

Additional "XorShiRo" family generators. This adds 4 PlusPlus general purpose variants
of existing generators and 3 variants of a large state (1024bit) generator. Fixes RNG117. 
aherbert 

Add LongJumpable support to XoShiRo generators previously only supporting Jumpable. Fixes RNG119. 
aherbert 

"RandomSource": Support creating a byte[] seed suitable for the implementing
generator class. Fixes RNG117. 
aherbert 

"RandomSource": Expose interfaces supported by the implementing generator class
with methods isJumpable() and isLongJumpable(). Fixes RNG116. 
aherbert 

New "JenkinsSmallFast32" and "JenkinsSmallFast64" generators. Fixes RNG111. 
aherbert 

"ListSampler": Select the shuffle algorithm based on the list type. This improves
performance for nonRandomAccess lists such as LinkedList. Fixes RNG114. 
aherbert 

"JDKRandomWrapper": Wraps an instance of java.util.Random for use as a
UniformRandomProvider. Can wrap a SecureRandom to use functionality
provided by the JDK for cryptographic random numbers and platform dependent
features such as reading /dev/urandom on Linux. Fixes RNG19. 
aherbert 

"JDKRandom": Fixed the restore state method to function when the instance has not
previously been used to save state. Fixes RNG115. 
aherbert 

New "DotyHumphreySmallFastCounting32" and "DotyHumphreySmallFastCounting64" generators. Fixes RNG112. 
aherbert 

"DiscreteProbabilityCollectionSampler": Use a faster enumerated probability
distribution sampler to replace the binary search algorithm. Fixes RNG109. 
aherbert 

New "MiddleSquareWeylSequence" generator. Fixes RNG85. 
aherbert 

"BaseProvider": Updated to use faster algorithm for nextInt(int). Fixes RNG90. 
aherbert 

"DiscreteUniformSampler": Updated to use faster algorithms for generation of ranges. Fixes RNG95. 
aherbert 

Factory methods for Discrete and Continuous distribution samplers. The factory method
can choose the optimal implementation for the distribution parameters. Fixes RNG110. 
aherbert 

New Permuted Congruential Generators (PCG) from the PCG family.
Added the LCG and MCG 32 bit output versions of the XSHRS and XSHRR operations,
along with the 64 bit RXSMXS edition. Fixes RNG84. Thanks to Abhishek Singh Dhadwal. 
aherbert 

New "SharedStateSampler" interface to allow a sampler to create a new instance with
a new source of randomness. Any precomputed state can be shared between the samplers. Fixes RNG102. 
aherbert 

Update "SeedFactory" to improve performance. Fixes RNG108. 
aherbert 

New "AliasMethodDiscreteSampler" that can sample from any discrete distribution defined
by an array of probabilities. Setup is O(n) time and sampling is O(1) time. Fixes RNG99. 
aherbert 

New "GuideTableDiscreteSampler" that can sample from any discrete distribution defined
by an array of probabilities. Fixes RNG100. 
aherbert 

Ensure SeedFactory produces nonzero seed arrays. This avoids invalid seeding of
generators that cannot recover from a seed of zeros. Fixes RNG106. 
aherbert 

New "LongJumpableUniformRandomProvider" interface extends JumpableUniformRandomProvider
with a long jump method. Fixes RNG98. 
aherbert 

New "JumpableUniformRandomProvider" interface provides a jump method that advances
the generator a large number of steps of the output sequence in a single operation. A
copy is returned allowing repeat invocations to create a series of generators
for use in parallel computations. Fixes RNG97. 
aherbert 

"LargeMeanPoissonSampler: Switch from SmallMeanPoissonSampler to use
KempSmallMeanPoissonSampler for the fractional mean sample. Fixes RNG103. 
aherbert 

"RandomSource.create(...)": Refactor internal components to allow custom seeding routines
per random source. Improvements were made to the speed of creating generators with small
seeds. Fixes RNG75. 
aherbert 

"NumberFactory": Improve performance of int and long array to/from byte array conversions. Fixes RNG77. 
aherbert 

New "MarsagliaTsangWangDiscreteSampler" that provides samples from a discrete
distribution stored as a lookup table using a single random integer deviate. Computes
tables for the Poisson or Binomial distributions, and generically any provided discrete
probability distribution. Fixes RNG101. 
aherbert 

"AhrensDieterMarsagliaTsangGammaSampler": Fix parameter interpretation so that alpha
is a 'shape' parameter and theta is a 'scale' parameter. This reverses the functionality
of the constructor parameters from previous versions. Dependent code should be checked
and parameters reversed to ensure existing functionality is maintained. Fixes RNG96. 
aherbert 

New "KempSmallMeanPoissonSampler" that provides Poisson samples using only 1 random
deviate per sample. This algorithm outperforms the SmallMeanPoissonSampler
when the generator is slow. Fixes RNG91. 
aherbert 

"SmallMeanPoissonSampler": Requires the Poisson probability for p(x=0) to be positive
setting an upper bound on the mean of approximately 744.44. Fixes RNG93. 
aherbert 

"LargeMeanPoissonSampler": Requires mean >= 1. Fixes RNG92. 
aherbert 

New "XorShiRo" family of generators. This adds 6 new general purpose generators with
different periods and 4 related generators with improved performance for floatingpoint
generation. Fixes RNG70. 
aherbert 

Update the generation performance JMH benchmarks to have a reference baseline. Fixes RNG88. 
aherbert 

"MultiplyWithCarry256": Performance improvement by advancing state one step per sample. Fixes RNG87. 
aherbert 

New "XorShift1024StarPhi" generator. This is a modified implementation of XorShift1024Star
that improves randomness of the output sequence. The XOR_SHIFT_1024_S enum has been marked
deprecated as a note to users to switch to the new XOR_SHIFT_1024_S_PHI version. Fixes RNG82. 
aherbert 

New "ThreadLocalRandomSource" class provides thread safe access to random generators. Fixes RNG78. 
aherbert 

"NumberFactory": Evenly sample all dyadic rationals between 0 and 1. Fixes RNG81. 
aherbert 

Benchmark methods for producing nextDouble and nextFloat. Fixes RNG79. 
aherbert 

Add the methods used from UniformRandomProvider to each sampler in the sampling module. Fixes RNG73. 
aherbert 

"DiscreteUniformSampler": Algorithms for small and large integer ranges have
been delegated to specialised classes. Fixes RNG74. 
aherbert 

Add new JMH benchmark ConstructionPerformance. Fixes RNG72. 
aherbert 

Validate parameters for the distribution samplers. Fixes RNG71. 
aherbert 

"AhrensDieterMarsagliaTsangGammaSampler": Algorithms for small and large theta have
been delegated to specialised classes. Fixes RNG68. 
aherbert 

Instructions for how to build and run the examplesstress code. Fixes RNG67. 
aherbert 

New "GeometricSampler" class. Fixes RNG69. 
aherbert 