You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2022/10/04 11:51:19 UTC
[commons-rng] branch 1.5-release updated: git commit -m "Release candidate."
This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch 1.5-release
in repository https://gitbox.apache.org/repos/asf/commons-rng.git
The following commit(s) were added to refs/heads/1.5-release by this push:
new 02d741d3 git commit -m "Release candidate."
02d741d3 is described below
commit 02d741d3651dedccfb9e3abffdddd35e88fbe6f5
Author: aherbert <ah...@apache.org>
AuthorDate: Tue Oct 4 12:49:07 2022 +0100
git commit -m "Release candidate."
---
RELEASE-NOTES.txt | 111 +++++++++++++++++++++
commons-rng-bom/README.md | 2 +-
commons-rng-bom/pom.xml | 4 +-
commons-rng-client-api/pom.xml | 4 +-
commons-rng-client-api/src/site/site.xml | 2 +
commons-rng-core/pom.xml | 6 +-
commons-rng-core/src/site/site.xml | 2 +
commons-rng-examples/examples-jmh/pom.xml | 4 +-
.../examples-jpms/jpms-app/pom.xml | 6 +-
.../examples-jpms/jpms-lib/pom.xml | 4 +-
commons-rng-examples/examples-jpms/pom.xml | 4 +-
commons-rng-examples/examples-quadrature/pom.xml | 4 +-
commons-rng-examples/examples-sampling/pom.xml | 4 +-
commons-rng-examples/examples-stress/pom.xml | 4 +-
commons-rng-examples/pom.xml | 10 +-
commons-rng-sampling/pom.xml | 8 +-
commons-rng-sampling/src/site/site.xml | 2 +
commons-rng-simple/pom.xml | 8 +-
commons-rng-simple/src/site/site.xml | 2 +
dist-archive/pom.xml | 28 +++---
docs-archive/pom.xml | 10 +-
pom.xml | 2 +-
src/changes/changes.xml | 15 +--
.../resources/release-notes/RELEASE-NOTES-1.5.txt | 111 +++++++++++++++++++++
src/site/xdoc/download_rng.xml | 26 ++---
25 files changed, 307 insertions(+), 76 deletions(-)
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3e5b3a74..ea2338d9 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,115 @@
+ Apache Commons RNG 1.5 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.5
+
+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.5 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).
+
+The source output type (int/long) of a RNG must maintain behavioural compatibility
+between releases; derived types may break behavioural compatibility. Any functional
+changes will be recorded in the release notes.
+
+Changes in this version include:
+
+New features:
+o RNG-182: Add a Bill of Materials (BOM) to aid in dependency management when referencing multiple
+ Apache Commons RNG artifacts. The BOM should be used to ensure all imported artifacts are
+ compatible.
+o RNG-181: LXM family to support SplittableUniformRandomProvider. This allows creating a parallel
+ stream of generators which will avoid sequence correlations between instances.
+o RNG-180: New "SplittableUniformRandomProvider" interface to allow splitting a RNG into two
+ objects, each of which implements the same interface (and can be recursively split
+ indefinitely). Add default methods to support parallel stream implementations
+ of the UniformRandomProvider stream methods.
+o RNG-179: "FastLoadedDiceRollerDiscreteSampler": Distribution sampler that uses the
+ Fast Loaded Dice Roller (FLDR) algorithm for exact sampling from a discrete
+ probability distribution.
+o RNG-178: "JumpableUniformRandomProvider": Add support to generate Java 8 streams of new
+ random generator instances using the jump method.
+o RNG-176: "UniformRandomProvider": Enhance the interface with default methods. Add range sample
+ methods with a lower and upper bound. Add support to generate Java 8 streams of sample
+ values. Note: This moves some method implementations from the core module to the
+ client-api module. Binary compatibility is supported if the versions of these modules are
+ matched. Users of the simple module should ensure the client-api and core modules are
+ resolved as matched versions and not mismatched by transitive dependency resolution.
+o RNG-177: "sampling": Add samples() method to the API to generate Java 8 streams of sample values.
+o RNG-168: New LXM family of random generators. Added implementations of the LXM generators
+ included in JDK 17.
+o RNG-174: "RandomSource": Improve support for non-zero seeds. Seeding has been changed to specify
+ a sub-range of the seed that must not be all zero. Introduces a functional change where
+ byte[] seeds generated by RandomSource with a fixed UniformRandomProvider may be
+ different. Seeds are now reproducible across calls using an input random source in an
+ identical state.
+o RNG-173: "BaseProvider": Add a static method to extend input int[] and long[] seeds to a
+ minimum length.
+o RNG-167: New "TSampler" class to sample from Student's t-distribution.
+
+Fixed Bugs:
+o RNG-175: "RandomSource.MSWS": createSeed(UniformRandomProvider) to handle a bad RNG.
+ This fixes an infinite loop when the RNG output is not suitably random to create a seed.
+o RNG-170: Update implementations of "UniformRandomProvider.nextBytes" with a range
+ [start, start + length) to be consistent with the exception conditions of the
+ JDK array range checks.
+o RNG-166: Update "LogNormalSampler" and "BoxMullerLogNormalSampler" to allow a negative mean for
+ the natural logarithm of the distribution values.
+o RNG-165: "RejectionInversionZipfSampler": Allow a zero exponent in the Zipf sampler.
+
+Changes:
+o RNG-171: Reduce the memory footprint of the cached boolean and int source for the IntProvider
+ and LongProvider. This change has a performance improvement on some JDKs.
+ Note: This introduces a functional compatibility change to the output from the
+ nextInt method of any LongProvider; the output is now little-endian as
+ each long is returned as the low 32-bits then the high 32-bits.
+ The bit output from nextBoolean is unchanged (little-endian order).
+o RNG-172: "UniformLongSampler": Precompute rejection threshold for a non-power of 2 range.
+o RNG-169: "RandomSource.create": Update array seed conversion to use optimum seed length.
+ Avoid duplication of input bytes and conversion of bytes that will be discarded.
+ This introduces a behavioural change for int[], long[], and int seed conversions.
+ Any fixed seeds used in previous versions in byte[], long or the native seed type
+ will create the same RNG state. All array-to-array seed conversions now use little
+ endian format, matching the byte[] conversion behaviour since 1.0. All seed
+ conversions that expand the seed size use the same generation method to provide
+ additional bytes. Conversion of int[] to long avoids loss of bits
+ changing the possible output seeds from 2^32 to 2^64.
+o RNG-160: "ZigguratSampler": Performance improvement using ternary operator to sort values.
+
+
+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.4 RELEASE NOTES
The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4
diff --git a/commons-rng-bom/README.md b/commons-rng-bom/README.md
index 0d346072..fc751b01 100644
--- a/commons-rng-bom/README.md
+++ b/commons-rng-bom/README.md
@@ -46,7 +46,7 @@ the Bill of Materials (BOM) for dependency management:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-bom</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
diff --git a/commons-rng-bom/pom.xml b/commons-rng-bom/pom.xml
index 1264c534..95c07880 100644
--- a/commons-rng-bom/pom.xml
+++ b/commons-rng-bom/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-bom</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG (Bill of Materials)</name>
<packaging>pom</packaging>
diff --git a/commons-rng-client-api/pom.xml b/commons-rng-client-api/pom.xml
index 1e19a2d9..0dac1383 100644
--- a/commons-rng-client-api/pom.xml
+++ b/commons-rng-client-api/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG Client API</name>
<description>API for client code that uses random numbers generators.</description>
diff --git a/commons-rng-client-api/src/site/site.xml b/commons-rng-client-api/src/site/site.xml
index ac31a360..c972543a 100644
--- a/commons-rng-client-api/src/site/site.xml
+++ b/commons-rng-client-api/src/site/site.xml
@@ -28,6 +28,8 @@
<item name="Overview" href="index.html"/>
<item name="Latest API docs (development)"
href="apidocs/index.html"/>
+ <item name="Javadoc (1.5 release)"
+ href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.5/index.html"/>
<item name="Javadoc (1.4 release)"
href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.4/index.html"/>
<item name="Javadoc (1.3 release)"
diff --git a/commons-rng-core/pom.xml b/commons-rng-core/pom.xml
index ed48c14a..0577d84c 100644
--- a/commons-rng-core/pom.xml
+++ b/commons-rng-core/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG Core</name>
<description>Pure Java implementations of random numbers generator algorithms.
@@ -52,7 +52,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<!-- For testing floating point precision -->
diff --git a/commons-rng-core/src/site/site.xml b/commons-rng-core/src/site/site.xml
index ea92b395..7e4b032f 100644
--- a/commons-rng-core/src/site/site.xml
+++ b/commons-rng-core/src/site/site.xml
@@ -28,6 +28,8 @@
<item name="Overview" href="index.html"/>
<item name="Latest API docs (development)"
href="apidocs/index.html"/>
+ <item name="Javadoc (1.5 release)"
+ href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.5/index.html"/>
<item name="Javadoc (1.4 release)"
href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.4/index.html"/>
<item name="Javadoc (1.3 release)"
diff --git a/commons-rng-examples/examples-jmh/pom.xml b/commons-rng-examples/examples-jmh/pom.xml
index 25fe0b0d..f868cb69 100644
--- a/commons-rng-examples/examples-jmh/pom.xml
+++ b/commons-rng-examples/examples-jmh/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG JMH Benchmark</name>
<description>Code for running JMH benchmarks that assess the performance of the generators.
diff --git a/commons-rng-examples/examples-jpms/jpms-app/pom.xml b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
index faa58fc0..1e7a0d01 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG JPMS Module Example (Application)</name>
<description>Testing JPMS. Code in this module is not part of the public API.</description>
@@ -42,7 +42,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
</dependencies>
diff --git a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
index 875952e4..97cac7d3 100644
--- a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG JPMS Module Example (Library)</name>
<description>Testing JPMS. Code in this module is not part of the public API.</description>
diff --git a/commons-rng-examples/examples-jpms/pom.xml b/commons-rng-examples/examples-jpms/pom.xml
index ee6bc1ac..0ab72bbb 100644
--- a/commons-rng-examples/examples-jpms/pom.xml
+++ b/commons-rng-examples/examples-jpms/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<packaging>pom</packaging>
<name>Apache Commons RNG JPMS Integration Test</name>
diff --git a/commons-rng-examples/examples-quadrature/pom.xml b/commons-rng-examples/examples-quadrature/pom.xml
index e1c4c48d..1b00aa0d 100644
--- a/commons-rng-examples/examples-quadrature/pom.xml
+++ b/commons-rng-examples/examples-quadrature/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG Quadrature Example</name>
<description>Contains examples for computing numerical quadrature (integration).
diff --git a/commons-rng-examples/examples-sampling/pom.xml b/commons-rng-examples/examples-sampling/pom.xml
index dc9d373f..8912b926 100644
--- a/commons-rng-examples/examples-sampling/pom.xml
+++ b/commons-rng-examples/examples-sampling/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<!-- This name is used in the shaded jar to provide the application title for the version information. -->
<name>Apache Commons RNG Examples Sampling Utilities</name>
diff --git a/commons-rng-examples/examples-stress/pom.xml b/commons-rng-examples/examples-stress/pom.xml
index 54aca368..412c09bb 100644
--- a/commons-rng-examples/examples-stress/pom.xml
+++ b/commons-rng-examples/examples-stress/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<!-- This name is used in the shaded jar to provide the application title for the version information. -->
<name>Apache Commons RNG Examples Stress Utilities</name>
diff --git a/commons-rng-examples/pom.xml b/commons-rng-examples/pom.xml
index 1a3ce37d..f9c8c2b0 100644
--- a/commons-rng-examples/pom.xml
+++ b/commons-rng-examples/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-examples</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<packaging>pom</packaging>
<name>Apache Commons RNG Examples</name>
@@ -61,17 +61,17 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>info.picocli</groupId>
diff --git a/commons-rng-sampling/pom.xml b/commons-rng-sampling/pom.xml
index 9094584c..7c88db69 100644
--- a/commons-rng-sampling/pom.xml
+++ b/commons-rng-sampling/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG Sampling</name>
<description>The Apache Commons RNG Sampling module provides samplers
@@ -49,13 +49,13 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<scope>test</scope>
</dependency>
diff --git a/commons-rng-sampling/src/site/site.xml b/commons-rng-sampling/src/site/site.xml
index 6ab2ed68..d5f96050 100644
--- a/commons-rng-sampling/src/site/site.xml
+++ b/commons-rng-sampling/src/site/site.xml
@@ -28,6 +28,8 @@
<item name="Overview" href="index.html"/>
<item name="Latest API docs (development)"
href="apidocs/index.html"/>
+ <item name="Javadoc (1.5 release)"
+ href="https://commons.apache.org/rng/commons-rng-sampling/javadocs/api-1.5/index.html"/>
<item name="Javadoc (1.4 release)"
href="https://commons.apache.org/rng/commons-rng-sampling/javadocs/api-1.4/index.html"/>
<item name="Javadoc (1.3 release)"
diff --git a/commons-rng-simple/pom.xml b/commons-rng-simple/pom.xml
index dc6e4f28..0d18ef06 100644
--- a/commons-rng-simple/pom.xml
+++ b/commons-rng-simple/pom.xml
@@ -24,11 +24,11 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<name>Apache Commons RNG Simple</name>
<description>Simple API for instantiating random numbers generators.</description>
@@ -49,12 +49,12 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
diff --git a/commons-rng-simple/src/site/site.xml b/commons-rng-simple/src/site/site.xml
index 43d021ad..0aac3169 100644
--- a/commons-rng-simple/src/site/site.xml
+++ b/commons-rng-simple/src/site/site.xml
@@ -28,6 +28,8 @@
<item name="Overview" href="index.html"/>
<item name="Latest API docs (development)"
href="apidocs/index.html"/>
+ <item name="Javadoc (1.5 release)"
+ href="https://commons.apache.org/rng/commons-rng-simple/javadocs/api-1.5/index.html"/>
<item name="Javadoc (1.4 release)"
href="https://commons.apache.org/rng/commons-rng-simple/javadocs/api-1.4/index.html"/>
<item name="Javadoc (1.3 release)"
diff --git a/dist-archive/pom.xml b/dist-archive/pom.xml
index dc56289a..54d657a9 100644
--- a/dist-archive/pom.xml
+++ b/dist-archive/pom.xml
@@ -26,11 +26,11 @@ under the License.
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<packaging>pom</packaging>
<name>Apache Commons RNG (full distribution)</name>
<description>This module creates the Apache Commons RNG distribution.</description>
@@ -68,18 +68,18 @@ under the License.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>javadoc</classifier>
</dependency>
@@ -87,18 +87,18 @@ under the License.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>javadoc</classifier>
</dependency>
@@ -106,18 +106,18 @@ under the License.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>javadoc</classifier>
</dependency>
@@ -125,18 +125,18 @@ under the License.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<classifier>javadoc</classifier>
</dependency>
diff --git a/docs-archive/pom.xml b/docs-archive/pom.xml
index a8b20153..c714ed3d 100644
--- a/docs-archive/pom.xml
+++ b/docs-archive/pom.xml
@@ -21,7 +21,7 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</parent>
<artifactId>commons-rng-docs</artifactId>
@@ -49,22 +49,22 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
</dependency>
</dependencies>
diff --git a/pom.xml b/pom.xml
index 012d2edb..b978b930 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
</parent>
<artifactId>commons-rng-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
+ <version>1.5</version>
<packaging>pom</packaging>
<name>Apache Commons RNG</name>
<description>The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.</description>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f51271fb..07b00982 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -53,7 +53,7 @@ If the output is not quite correct, check for invisible trailing spaces!
</properties>
<body>
- <release version="1.5" date="TBD" description="
+ <release version="1.5" date="2022-09-10" description="
This is a minor release of Apache Commons RNG, containing a
few new features and performance improvements.
Apache Commons RNG 1.5 contains the following library modules:
@@ -113,10 +113,10 @@ will be recorded in the release notes.
<action dev="aherbert" type="add" issue="RNG-176">
"UniformRandomProvider": Enhance the interface with default methods. Add range sample
methods with a lower and upper bound. Add support to generate Java 8 streams of sample
- values. Note: This moves some method implementations from the core module to the client-api
- module. Binary compatibility is supported if the versions of these modules are matched.
- Users of the simple module should ensure the client-api and core modules are resolved as
- matched versions and not mismatched by transitive dependency resolution.
+ values. Note: This moves some method implementations from the core module to the
+ client-api module. Binary compatibility is supported if the versions of these modules are
+ matched. Users of the simple module should ensure the client-api and core modules are
+ resolved as matched versions and not mismatched by transitive dependency resolution.
</action>
<action dev="aherbert" type="add" issue="RNG-177">
"sampling": Add samples() method to the API to generate Java 8 streams of sample values.
@@ -128,8 +128,9 @@ will be recorded in the release notes.
<action dev="aherbert" type="add" issue="RNG-174">
"RandomSource": Improve support for non-zero seeds. Seeding has been changed to specify
a sub-range of the seed that must not be all zero. Introduces a functional change where
- byte[] seeds generated by RandomSource with a fixed UniformRandomProvider may be different.
- Seeds are now reproducible across calls using an input random source in an identical state.
+ byte[] seeds generated by RandomSource with a fixed UniformRandomProvider may be
+ different. Seeds are now reproducible across calls using an input random source in an
+ identical state.
</action>
<action dev="aherbert" type="fix" issue="RNG-175">
"RandomSource.MSWS": createSeed(UniformRandomProvider) to handle a bad RNG.
diff --git a/RELEASE-NOTES.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.5.txt
similarity index 76%
copy from RELEASE-NOTES.txt
copy to src/site/resources/release-notes/RELEASE-NOTES-1.5.txt
index 3e5b3a74..ea2338d9 100644
--- a/RELEASE-NOTES.txt
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.5.txt
@@ -1,4 +1,115 @@
+ Apache Commons RNG 1.5 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.5
+
+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.5 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).
+
+The source output type (int/long) of a RNG must maintain behavioural compatibility
+between releases; derived types may break behavioural compatibility. Any functional
+changes will be recorded in the release notes.
+
+Changes in this version include:
+
+New features:
+o RNG-182: Add a Bill of Materials (BOM) to aid in dependency management when referencing multiple
+ Apache Commons RNG artifacts. The BOM should be used to ensure all imported artifacts are
+ compatible.
+o RNG-181: LXM family to support SplittableUniformRandomProvider. This allows creating a parallel
+ stream of generators which will avoid sequence correlations between instances.
+o RNG-180: New "SplittableUniformRandomProvider" interface to allow splitting a RNG into two
+ objects, each of which implements the same interface (and can be recursively split
+ indefinitely). Add default methods to support parallel stream implementations
+ of the UniformRandomProvider stream methods.
+o RNG-179: "FastLoadedDiceRollerDiscreteSampler": Distribution sampler that uses the
+ Fast Loaded Dice Roller (FLDR) algorithm for exact sampling from a discrete
+ probability distribution.
+o RNG-178: "JumpableUniformRandomProvider": Add support to generate Java 8 streams of new
+ random generator instances using the jump method.
+o RNG-176: "UniformRandomProvider": Enhance the interface with default methods. Add range sample
+ methods with a lower and upper bound. Add support to generate Java 8 streams of sample
+ values. Note: This moves some method implementations from the core module to the
+ client-api module. Binary compatibility is supported if the versions of these modules are
+ matched. Users of the simple module should ensure the client-api and core modules are
+ resolved as matched versions and not mismatched by transitive dependency resolution.
+o RNG-177: "sampling": Add samples() method to the API to generate Java 8 streams of sample values.
+o RNG-168: New LXM family of random generators. Added implementations of the LXM generators
+ included in JDK 17.
+o RNG-174: "RandomSource": Improve support for non-zero seeds. Seeding has been changed to specify
+ a sub-range of the seed that must not be all zero. Introduces a functional change where
+ byte[] seeds generated by RandomSource with a fixed UniformRandomProvider may be
+ different. Seeds are now reproducible across calls using an input random source in an
+ identical state.
+o RNG-173: "BaseProvider": Add a static method to extend input int[] and long[] seeds to a
+ minimum length.
+o RNG-167: New "TSampler" class to sample from Student's t-distribution.
+
+Fixed Bugs:
+o RNG-175: "RandomSource.MSWS": createSeed(UniformRandomProvider) to handle a bad RNG.
+ This fixes an infinite loop when the RNG output is not suitably random to create a seed.
+o RNG-170: Update implementations of "UniformRandomProvider.nextBytes" with a range
+ [start, start + length) to be consistent with the exception conditions of the
+ JDK array range checks.
+o RNG-166: Update "LogNormalSampler" and "BoxMullerLogNormalSampler" to allow a negative mean for
+ the natural logarithm of the distribution values.
+o RNG-165: "RejectionInversionZipfSampler": Allow a zero exponent in the Zipf sampler.
+
+Changes:
+o RNG-171: Reduce the memory footprint of the cached boolean and int source for the IntProvider
+ and LongProvider. This change has a performance improvement on some JDKs.
+ Note: This introduces a functional compatibility change to the output from the
+ nextInt method of any LongProvider; the output is now little-endian as
+ each long is returned as the low 32-bits then the high 32-bits.
+ The bit output from nextBoolean is unchanged (little-endian order).
+o RNG-172: "UniformLongSampler": Precompute rejection threshold for a non-power of 2 range.
+o RNG-169: "RandomSource.create": Update array seed conversion to use optimum seed length.
+ Avoid duplication of input bytes and conversion of bytes that will be discarded.
+ This introduces a behavioural change for int[], long[], and int seed conversions.
+ Any fixed seeds used in previous versions in byte[], long or the native seed type
+ will create the same RNG state. All array-to-array seed conversions now use little
+ endian format, matching the byte[] conversion behaviour since 1.0. All seed
+ conversions that expand the seed size use the same generation method to provide
+ additional bytes. Conversion of int[] to long avoids loss of bits
+ changing the possible output seeds from 2^32 to 2^64.
+o RNG-160: "ZigguratSampler": Performance improvement using ternary operator to sort values.
+
+
+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.4 RELEASE NOTES
The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4
diff --git a/src/site/xdoc/download_rng.xml b/src/site/xdoc/download_rng.xml
index cf764a20..842a66a6 100644
--- a/src/site/xdoc/download_rng.xml
+++ b/src/site/xdoc/download_rng.xml
@@ -113,32 +113,32 @@ limitations under the License.
</p>
</subsection>
</section>
- <section name="Apache Commons RNG 1.4 (requires Java 8+)">
+ <section name="Apache Commons RNG 1.5 (requires Java 8+)">
<subsection name="Binaries">
<table>
<tr>
- <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.4-bin.tar.gz">commons-rng-1.4-bin.tar.gz</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.tar.gz.sha512">sha512</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.5-bin.tar.gz">commons-rng-1.5-bin.tar.gz</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.5-bin.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.5-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.4-bin.zip">commons-rng-1.4-bin.zip</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.zip.sha512">sha512</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.4-bin.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.5-bin.zip">commons-rng-1.5-bin.zip</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.5-bin.zip.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.5-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a href="[preferred]/commons/rng/source/commons-rng-1.4-src.tar.gz">commons-rng-1.4-src.tar.gz</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.tar.gz.sha512">sha512</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/source/commons-rng-1.5-src.tar.gz">commons-rng-1.5-src.tar.gz</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.5-src.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.5-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/rng/source/commons-rng-1.4-src.zip">commons-rng-1.4-src.zip</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.zip.sha512">sha512</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.4-src.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/source/commons-rng-1.5-src.zip">commons-rng-1.5-src.zip</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.5-src.zip.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.5-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>