Skip to content
Permalink
Browse files
Retrieve 1.4 release details from the release branch
  • Loading branch information
aherbert committed Sep 13, 2021
1 parent bba61b9 commit 9ba0f3d89ecdb39cb7cb257eb0e6110c1406c7ff
Showing 5 changed files with 550 additions and 15 deletions.
@@ -1,4 +1,109 @@

Apache Commons RNG 1.4 RELEASE NOTES

The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4

The Apache Commons RNG project provides pure-Java implementation
of pseudo-random generators.

This is a minor release of Apache Commons RNG, containing a
few new features and performance improvements.

Apache Commons RNG 1.4 contains the following library modules:
commons-rng-client-api (requires Java 8)
commons-rng-core (requires Java 8)
commons-rng-simple (requires Java 8)
commons-rng-sampling (requires Java 8)

The code in module 'commons-rng-core' should not be accessed
directly by applications as a future release might make use of
the JPMS modularization feature available in Java 11+.

Additional code is provided in the following modules:
commons-rng-examples-quadrature (requires Java 8)
commons-rng-examples-jmh (requires Java 8)
commons-rng-examples-sampling (requires Java 8)
commons-rng-examples-stress (requires Java 8)
commons-rng-examples-jpms (requires Java 11)

It is however not part of the official API and no compatibility
should be expected in subsequent releases.

It must be noted that, due to the nature of random number generation, some unit tests
are bound to fail with some probability. The 'maven-surefire-plugin' is configured
to re-run tests that fail, and pass the build if they succeed within the allotted
number of reruns (the test will be marked as 'flaky' in the report).

Changes in this version include:

New features:
o RNG-156: New "DirichletSampler" class to sample from a Dirichlet distribution.
o RNG-137: New "StableSampler" class to sample from a stable distribution.
o RNG-138: New "CompositeSamplers" class to sample from a weighted combination of samplers.
o RNG-140: New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample
from a range.
o RNG-151: New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for
Gaussian and exponential sampling.
o RNG-147: New "LevySampler" to sample from a Levy distribution.
o RNG-145: "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper).
o RNG-143: "RandomSource": Add an instance create method. Deprecate the static create method.
o RNG-136: New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces.
These interfaces are implemented by samplers returning an object.
This changes the functional compatibility of existing samplers that implement
SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler;
DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler.
The method signature of the SharedStateSampler<R> interface remains
'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be
assigned to an instance of the same class R; it can no longer be assigned to an instance
of SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T>
which can be used to generate samples of type <T>.
Code that assigned to SharedStatedSampler<R> should be updated.
o RNG-135: New "TetrahedronSampler" to sample uniformly from a tetrahedron.
o RNG-134: New "BoxSampler" to sample uniformly from a box (or hyperrectangle).
o RNG-133: New "LineSampler" to sample uniformly on a line segment.
o RNG-131: New "TriangleSampler" to sample uniformly from a triangle.
o RNG-132: New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes.
o RNG-128: New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball.
o RNG-126: "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler.
o RNG-124: Add fixed increment versions of the PCG generators.

Fixed Bugs:
o RNG-159: "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions
at the edge of the ziggurat.
o RNG-146: "GaussianSampler": Prevent infinite mean and standard deviation.
o RNG-144: "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the
underlying UniformRandomProvider creates a zero for the uniform deviate.
o RNG-130: "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1.

Changes:
o RNG-163: Update test suite to JUnit 5.
o Simplify assertions with simpler equivalent. Thanks to Arturo Bernal.
o RNG-162: Update the minimum Java version to 1.8.
o RNG-160: "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat
edge sampling to a separate method.
o RNG-157: "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create
an optimal sampler.
o RNG-155: "ZigguratNormalizedGaussianSampler": Update to a table size of 256.
o RNG-152: Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates.
o RNG-154: Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies
to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and
BoxMullerGaussianSampler.
o RNG-153: "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for
ball point picking.
o RNG-150: Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for
exponential deviates.
o RNG-129: "UnitSphereSampler": Improve performance with specialisations for low order dimensions.
Added a factory constructor to create the sampler.


For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons RNG website:

https://commons.apache.org/proper/commons-rng/


=============================================================================

Apache Commons RNG 1.3 RELEASE NOTES

The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.3
@@ -53,7 +53,37 @@ If the output is not quite correct, check for invisible trailing spaces!
</properties>
<body>

<release version="1.4" date="TBD" description="
<release version="1.5" date="TBD" description="
This is a minor release of Apache Commons RNG, containing a
few new features and performance improvements.
Apache Commons RNG 1.4 contains the following library modules:
commons-rng-client-api (requires Java 8)
commons-rng-core (requires Java 8)
commons-rng-simple (requires Java 8)
commons-rng-sampling (requires Java 8)
The code in module 'commons-rng-core' should not be accessed
directly by applications as a future release might make use of
the JPMS modularization feature available in Java 11+.
Additional code is provided in the following modules:
commons-rng-examples-quadrature (requires Java 8)
commons-rng-examples-jmh (requires Java 8)
commons-rng-examples-sampling (requires Java 8)
commons-rng-examples-stress (requires Java 8)
commons-rng-examples-jpms (requires Java 11)
It is however not part of the official API and no compatibility
should be expected in subsequent releases.
It must be noted that, due to the nature of random number
generation, some unit tests are bound to fail with some
probability. The 'maven-surefire-plugin' is configured to
re-run tests that fail, and pass the build if they succeed
within the allotted number of reruns (the test will be marked
as 'flaky' in the report).
">
</release>

<release version="1.4" date="2021-09-13" description="
This is a minor release of Apache Commons RNG, containing a
few new features and performance improvements.
Apache Commons RNG 1.4 contains the following library modules:

0 comments on commit 9ba0f3d

Please sign in to comment.