|
1 | 1 |
|
| 2 | + Apache Commons RNG 1.4 RELEASE NOTES |
| 3 | + |
| 4 | +The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4 |
| 5 | + |
| 6 | +The Apache Commons RNG project provides pure-Java implementation |
| 7 | +of pseudo-random generators. |
| 8 | + |
| 9 | +This is a minor release of Apache Commons RNG, containing a |
| 10 | +few new features and performance improvements. |
| 11 | + |
| 12 | +Apache Commons RNG 1.4 contains the following library modules: |
| 13 | + commons-rng-client-api (requires Java 8) |
| 14 | + commons-rng-core (requires Java 8) |
| 15 | + commons-rng-simple (requires Java 8) |
| 16 | + commons-rng-sampling (requires Java 8) |
| 17 | + |
| 18 | +The code in module 'commons-rng-core' should not be accessed |
| 19 | +directly by applications as a future release might make use of |
| 20 | +the JPMS modularization feature available in Java 11+. |
| 21 | + |
| 22 | +Additional code is provided in the following modules: |
| 23 | + commons-rng-examples-quadrature (requires Java 8) |
| 24 | + commons-rng-examples-jmh (requires Java 8) |
| 25 | + commons-rng-examples-sampling (requires Java 8) |
| 26 | + commons-rng-examples-stress (requires Java 8) |
| 27 | + commons-rng-examples-jpms (requires Java 11) |
| 28 | + |
| 29 | +It is however not part of the official API and no compatibility |
| 30 | +should be expected in subsequent releases. |
| 31 | + |
| 32 | +It must be noted that, due to the nature of random number generation, some unit tests |
| 33 | +are bound to fail with some probability. The 'maven-surefire-plugin' is configured |
| 34 | +to re-run tests that fail, and pass the build if they succeed within the allotted |
| 35 | +number of reruns (the test will be marked as 'flaky' in the report). |
| 36 | + |
| 37 | +Changes in this version include: |
| 38 | + |
| 39 | +New features: |
| 40 | +o RNG-156: New "DirichletSampler" class to sample from a Dirichlet distribution. |
| 41 | +o RNG-137: New "StableSampler" class to sample from a stable distribution. |
| 42 | +o RNG-138: New "CompositeSamplers" class to sample from a weighted combination of samplers. |
| 43 | +o RNG-140: New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample |
| 44 | + from a range. |
| 45 | +o RNG-151: New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for |
| 46 | + Gaussian and exponential sampling. |
| 47 | +o RNG-147: New "LevySampler" to sample from a Levy distribution. |
| 48 | +o RNG-145: "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper). |
| 49 | +o RNG-143: "RandomSource": Add an instance create method. Deprecate the static create method. |
| 50 | +o RNG-136: New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces. |
| 51 | + These interfaces are implemented by samplers returning an object. |
| 52 | + This changes the functional compatibility of existing samplers that implement |
| 53 | + SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler; |
| 54 | + DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler. |
| 55 | + The method signature of the SharedStateSampler<R> interface remains |
| 56 | + 'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be |
| 57 | + assigned to an instance of the same class R; it can no longer be assigned to an instance |
| 58 | + of SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T> |
| 59 | + which can be used to generate samples of type <T>. |
| 60 | + Code that assigned to SharedStatedSampler<R> should be updated. |
| 61 | +o RNG-135: New "TetrahedronSampler" to sample uniformly from a tetrahedron. |
| 62 | +o RNG-134: New "BoxSampler" to sample uniformly from a box (or hyperrectangle). |
| 63 | +o RNG-133: New "LineSampler" to sample uniformly on a line segment. |
| 64 | +o RNG-131: New "TriangleSampler" to sample uniformly from a triangle. |
| 65 | +o RNG-132: New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes. |
| 66 | +o RNG-128: New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball. |
| 67 | +o RNG-126: "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler. |
| 68 | +o RNG-124: Add fixed increment versions of the PCG generators. |
| 69 | + |
| 70 | +Fixed Bugs: |
| 71 | +o RNG-159: "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions |
| 72 | + at the edge of the ziggurat. |
| 73 | +o RNG-146: "GaussianSampler": Prevent infinite mean and standard deviation. |
| 74 | +o RNG-144: "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the |
| 75 | + underlying UniformRandomProvider creates a zero for the uniform deviate. |
| 76 | +o RNG-130: "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1. |
| 77 | + |
| 78 | +Changes: |
| 79 | +o RNG-163: Update test suite to JUnit 5. |
| 80 | +o Simplify assertions with simpler equivalent. Thanks to Arturo Bernal. |
| 81 | +o RNG-162: Update the minimum Java version to 1.8. |
| 82 | +o RNG-160: "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat |
| 83 | + edge sampling to a separate method. |
| 84 | +o RNG-157: "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create |
| 85 | + an optimal sampler. |
| 86 | +o RNG-155: "ZigguratNormalizedGaussianSampler": Update to a table size of 256. |
| 87 | +o RNG-152: Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates. |
| 88 | +o RNG-154: Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies |
| 89 | + to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and |
| 90 | + BoxMullerGaussianSampler. |
| 91 | +o RNG-153: "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for |
| 92 | + ball point picking. |
| 93 | +o RNG-150: Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for |
| 94 | + exponential deviates. |
| 95 | +o RNG-129: "UnitSphereSampler": Improve performance with specialisations for low order dimensions. |
| 96 | + Added a factory constructor to create the sampler. |
| 97 | + |
| 98 | + |
| 99 | +For complete information on Apache Commons RNG, including instructions on how to submit bug reports, |
| 100 | +patches, or suggestions for improvement, see the Apache Commons RNG website: |
| 101 | + |
| 102 | +https://commons.apache.org/proper/commons-rng/ |
| 103 | + |
| 104 | + |
| 105 | +============================================================================= |
| 106 | + |
2 | 107 | Apache Commons RNG 1.3 RELEASE NOTES |
3 | 108 |
|
4 | 109 | The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.3 |
|
0 commit comments