Type |
Changes |
By |
|
"SeedFactory": Use XoRoShiRo1024PlusPlus as the default source of randomness. Fixes RNG-122. |
aherbert |
|
"ChengBetaSampler": Algorithms for different distribution parameters have
been delegated to specialised classes. Fixes RNG-121. |
aherbert |
|
Update security of serialization code for java.util.Random instances. Implement
look-ahead deserialization or remove the use of ObjectInputStream.readObject(). Fixes RNG-120. |
aherbert |
|
"SplitMix64": Added primitive long constructor. Fixes RNG-76. |
aherbert |
|
Additional "XorShiRo" family generators. This adds 4 PlusPlus general purpose variants
of existing generators and 3 variants of a large state (1024-bit) generator. Fixes RNG-117. |
aherbert |
|
Add LongJumpable support to XoShiRo generators previously only supporting Jumpable. Fixes RNG-119. |
aherbert |
|
"RandomSource": Support creating a byte[] seed suitable for the implementing
generator class. Fixes RNG-117. |
aherbert |
|
"RandomSource": Expose interfaces supported by the implementing generator class
with methods isJumpable() and isLongJumpable(). Fixes RNG-116. |
aherbert |
|
New "JenkinsSmallFast32" and "JenkinsSmallFast64" generators. Fixes RNG-111. |
aherbert |
|
"ListSampler": Select the shuffle algorithm based on the list type. This improves
performance for non-RandomAccess lists such as LinkedList. Fixes RNG-114. |
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 RNG-19. |
aherbert |
|
"JDKRandom": Fixed the restore state method to function when the instance has not
previously been used to save state. Fixes RNG-115. |
aherbert |
|
New "DotyHumphreySmallFastCounting32" and "DotyHumphreySmallFastCounting64" generators. Fixes RNG-112. |
aherbert |
|
"DiscreteProbabilityCollectionSampler": Use a faster enumerated probability
distribution sampler to replace the binary search algorithm. Fixes RNG-109. |
aherbert |
|
New "MiddleSquareWeylSequence" generator. Fixes RNG-85. |
aherbert |
|
"BaseProvider": Updated to use faster algorithm for nextInt(int). Fixes RNG-90. |
aherbert |
|
"DiscreteUniformSampler": Updated to use faster algorithms for generation of ranges. Fixes RNG-95. |
aherbert |
|
Factory methods for Discrete and Continuous distribution samplers. The factory method
can choose the optimal implementation for the distribution parameters. Fixes RNG-110. |
aherbert |
|
New Permuted Congruential Generators (PCG) from the PCG family.
Added the LCG and MCG 32 bit output versions of the XSH-RS and XSH-RR operations,
along with the 64 bit RXS-M-XS edition. Fixes RNG-84. 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 pre-computed state can be shared between the samplers. Fixes RNG-102. |
aherbert |
|
Update "SeedFactory" to improve performance. Fixes RNG-108. |
aherbert |
|
New "AliasMethodDiscreteSampler" that can sample from any discrete distribution defined
by an array of probabilities. Set-up is O(n) time and sampling is O(1) time. Fixes RNG-99. |
aherbert |
|
New "GuideTableDiscreteSampler" that can sample from any discrete distribution defined
by an array of probabilities. Fixes RNG-100. |
aherbert |
|
Ensure SeedFactory produces non-zero seed arrays. This avoids invalid seeding of
generators that cannot recover from a seed of zeros. Fixes RNG-106. |
aherbert |
|
New "LongJumpableUniformRandomProvider" interface extends JumpableUniformRandomProvider
with a long jump method. Fixes RNG-98. |
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 RNG-97. |
aherbert |
|
"LargeMeanPoissonSampler: Switch from SmallMeanPoissonSampler to use
KempSmallMeanPoissonSampler for the fractional mean sample. Fixes RNG-103. |
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 RNG-75. |
aherbert |
|
"NumberFactory": Improve performance of int and long array to/from byte array
conversions. Fixes RNG-77. |
aherbert |
|
New "MarsagliaTsangWangDiscreteSampler" that provides samples from a discrete
distribution stored as a look-up table using a single random integer deviate. Computes
tables for the Poisson or Binomial distributions, and generically any provided discrete
probability distribution. Fixes RNG-101. |
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 RNG-96. |
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 RNG-91. |
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 RNG-93. |
aherbert |
|
"LargeMeanPoissonSampler": Requires mean >= 1. Fixes RNG-92. |
aherbert |
|
New "XorShiRo" family of generators. This adds 6 new general purpose generators with
different periods and 4 related generators with improved performance for floating-point
generation. Fixes RNG-70. |
aherbert |
|
Update the generation performance JMH benchmarks to have a reference baseline. Fixes RNG-88. |
aherbert |
|
"MultiplyWithCarry256": Performance improvement by advancing state one step per sample. Fixes RNG-87. |
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 RNG-82. |
aherbert |
|
New "ThreadLocalRandomSource" class provides thread safe access to random generators. Fixes RNG-78. |
aherbert |
|
"NumberFactory": Evenly sample all dyadic rationals between 0 and 1. Fixes RNG-81. |
aherbert |
|
Benchmark methods for producing nextDouble and nextFloat. Fixes RNG-79. |
aherbert |
|
Add the methods used from UniformRandomProvider to each sampler in the sampling module. Fixes RNG-73. |
aherbert |
|
"DiscreteUniformSampler": Algorithms for small and large integer ranges have
been delegated to specialised classes. Fixes RNG-74. |
aherbert |
|
Add new JMH benchmark ConstructionPerformance. Fixes RNG-72. |
aherbert |
|
Validate parameters for the distribution samplers. Fixes RNG-71. |
aherbert |
|
"AhrensDieterMarsagliaTsangGammaSampler": Algorithms for small and large theta have
been delegated to specialised classes. Fixes RNG-68. |
aherbert |
|
Instructions for how to build and run the examples-stress code. Fixes RNG-67. |
aherbert |
|
New "GeometricSampler" class. Fixes RNG-69. |
aherbert |