From 15460de9bac30bd4cfc6d357a6a6f2b611b2698a Mon Sep 17 00:00:00 2001
From: Alex Herbert
Date: Fri, 5 Jul 2024 11:29:52 +0100
Subject: [PATCH] Release candidate.
---
RELEASE-NOTES.txt | 62 ++
commons-rng-bom/pom.xml | 4 +-
commons-rng-bom/src/site/xdoc/index.xml | 2 +-
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-docs/pom.xml | 10 +-
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 +-
.../examples-quadrature/pom.xml | 4 +-
.../examples-sampling/pom.xml | 4 +-
commons-rng-examples/examples-stress/pom.xml | 4 +-
commons-rng-examples/pom.xml | 10 +-
commons-rng-integration/pom.xml | 8 +-
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 +-
pom.xml | 4 +-
src/changes/changes.xml | 2 +-
.../release-notes/RELEASE-NOTES-1.6.txt | 570 ++++++++++++++++++
src/site/xdoc/download_rng.xml | 28 +-
26 files changed, 716 insertions(+), 76 deletions(-)
create mode 100644 src/site/resources/release-notes/RELEASE-NOTES-1.6.txt
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index ea2338d9..ba9a1a20 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,66 @@
+ Apache Commons RNG 1.6 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.6
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+New features, updates and bug fixes (requires Java 8).
+
+Apache Commons RNG 1.6 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)
+ commons-rng-bom
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications; generators should be created using
+the 'commons-rng-simple' module.
+
+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-186: Correct the module OSGi exports. Use of multiple modules is validated in an OSGi
+ integration test.
+o RNG-184: New "ArraySampler" to support shuffling primitive and generic arrays with
+ sub-range support.
+
+
+Changes:
+o RNG-183: "InverseTransformParetoSampler": Modified to concentrate samples at the distribution
+ lower/upper bounds for extreme shape parameters. Eliminates generation of outlier
+ infinite samples and NaN samples under certain conditions. Changes sampling to use
+ the RNG nextLong() method in-place of nextDouble().
+
+
+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.5 RELEASE NOTES
The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.5
diff --git a/commons-rng-bom/pom.xml b/commons-rng-bom/pom.xml
index b40c414a..ba77e2f0 100644
--- a/commons-rng-bom/pom.xml
+++ b/commons-rng-bom/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-bom
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG (Bill of Materials)
pom
diff --git a/commons-rng-bom/src/site/xdoc/index.xml b/commons-rng-bom/src/site/xdoc/index.xml
index 061f35e7..936277b4 100644
--- a/commons-rng-bom/src/site/xdoc/index.xml
+++ b/commons-rng-bom/src/site/xdoc/index.xml
@@ -49,7 +49,7 @@
org.apache.commons
commons-rng-bom
- 1.5
+ 1.6
pom
import
diff --git a/commons-rng-client-api/pom.xml b/commons-rng-client-api/pom.xml
index 3fcdeae3..0cfaba1f 100644
--- a/commons-rng-client-api/pom.xml
+++ b/commons-rng-client-api/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Client API
API for client code that uses random numbers generators.
diff --git a/commons-rng-client-api/src/site/site.xml b/commons-rng-client-api/src/site/site.xml
index c972543a..cc72c0ef 100644
--- a/commons-rng-client-api/src/site/site.xml
+++ b/commons-rng-client-api/src/site/site.xml
@@ -28,6 +28,8 @@
+
-
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Core
Pure Java implementations of random numbers generator algorithms.
@@ -61,7 +61,7 @@
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
diff --git a/commons-rng-core/src/site/site.xml b/commons-rng-core/src/site/site.xml
index 7e4b032f..7ae9e8d0 100644
--- a/commons-rng-core/src/site/site.xml
+++ b/commons-rng-core/src/site/site.xml
@@ -28,6 +28,8 @@
+
-
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-docs
@@ -61,22 +61,22 @@
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
diff --git a/commons-rng-examples/examples-jmh/pom.xml b/commons-rng-examples/examples-jmh/pom.xml
index ac2e53af..0222543c 100644
--- a/commons-rng-examples/examples-jmh/pom.xml
+++ b/commons-rng-examples/examples-jmh/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-jmh
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG JMH Benchmark
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 d851ae3c..03b79865 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples-jpms
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-jpms-app
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG JPMS Module Example (Application)
Testing JPMS. Code in this module is not part of the public API.
@@ -39,7 +39,7 @@
org.apache.commons
commons-rng-examples-jpms-lib
- 1.6-SNAPSHOT
+ 1.6
diff --git a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
index d83693fd..7dc2c62f 100644
--- a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples-jpms
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-jpms-lib
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG JPMS Module Example (Library)
Testing JPMS. Code in this module is not part of the public API.
diff --git a/commons-rng-examples/examples-jpms/pom.xml b/commons-rng-examples/examples-jpms/pom.xml
index 24b421a9..b7bb91be 100644
--- a/commons-rng-examples/examples-jpms/pom.xml
+++ b/commons-rng-examples/examples-jpms/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-jpms
- 1.6-SNAPSHOT
+ 1.6
pom
Apache Commons RNG JPMS Integration Test
diff --git a/commons-rng-examples/examples-quadrature/pom.xml b/commons-rng-examples/examples-quadrature/pom.xml
index 3cde57b1..ead2a798 100644
--- a/commons-rng-examples/examples-quadrature/pom.xml
+++ b/commons-rng-examples/examples-quadrature/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-quadrature
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Quadrature Example
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 1f3ecf20..2c88dab3 100644
--- a/commons-rng-examples/examples-sampling/pom.xml
+++ b/commons-rng-examples/examples-sampling/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-sampling
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Examples Sampling Utilities
diff --git a/commons-rng-examples/examples-stress/pom.xml b/commons-rng-examples/examples-stress/pom.xml
index a3dc4032..d6e8112f 100644
--- a/commons-rng-examples/examples-stress/pom.xml
+++ b/commons-rng-examples/examples-stress/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples-stress
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Examples Stress Utilities
diff --git a/commons-rng-examples/pom.xml b/commons-rng-examples/pom.xml
index df91885c..cf23cdbb 100644
--- a/commons-rng-examples/pom.xml
+++ b/commons-rng-examples/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-examples
- 1.6-SNAPSHOT
+ 1.6
pom
Apache Commons RNG Examples
@@ -60,17 +60,17 @@
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
info.picocli
diff --git a/commons-rng-integration/pom.xml b/commons-rng-integration/pom.xml
index 66a79131..8e04c3b4 100644
--- a/commons-rng-integration/pom.xml
+++ b/commons-rng-integration/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-integration
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Integration Tests
jar
@@ -65,14 +65,14 @@
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
test
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
test
diff --git a/commons-rng-sampling/pom.xml b/commons-rng-sampling/pom.xml
index a85a7e73..c6ae6ce7 100644
--- a/commons-rng-sampling/pom.xml
+++ b/commons-rng-sampling/pom.xml
@@ -21,11 +21,11 @@
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Sampling
The Apache Commons RNG Sampling module provides samplers
@@ -59,13 +59,13 @@
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
test
diff --git a/commons-rng-sampling/src/site/site.xml b/commons-rng-sampling/src/site/site.xml
index d5f96050..78284ec5 100644
--- a/commons-rng-sampling/src/site/site.xml
+++ b/commons-rng-sampling/src/site/site.xml
@@ -28,6 +28,8 @@
+
-
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
Apache Commons RNG Simple
Simple API for instantiating random numbers generators.
@@ -52,12 +52,12 @@
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
diff --git a/commons-rng-simple/src/site/site.xml b/commons-rng-simple/src/site/site.xml
index 0aac3169..9db0f7a2 100644
--- a/commons-rng-simple/src/site/site.xml
+++ b/commons-rng-simple/src/site/site.xml
@@ -28,6 +28,8 @@
+
-
org.apache.commons
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
commons-rng
- 1.6-SNAPSHOT
+ 1.6
pom
Apache Commons RNG (full distribution)
This module creates the Apache Commons RNG distribution.
@@ -66,18 +66,18 @@ under the License.
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
sources
org.apache.commons
commons-rng-client-api
- 1.6-SNAPSHOT
+ 1.6
javadoc
@@ -85,18 +85,18 @@ under the License.
org.apache.commons
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
sources
org.apache.commons
commons-rng-core
- 1.6-SNAPSHOT
+ 1.6
javadoc
@@ -104,18 +104,18 @@ under the License.
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
sources
org.apache.commons
commons-rng-simple
- 1.6-SNAPSHOT
+ 1.6
javadoc
@@ -123,18 +123,18 @@ under the License.
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
sources
org.apache.commons
commons-rng-sampling
- 1.6-SNAPSHOT
+ 1.6
javadoc
diff --git a/pom.xml b/pom.xml
index 34f9ec1f..ad16d943 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
commons-rng-parent
- 1.6-SNAPSHOT
+ 1.6
pom
Apache Commons RNG
The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
@@ -44,7 +44,7 @@
false
- 2024-04-18T00:00:00Z
+ 2024-07-05T00:00:00Z
${rng.build.outputTimestamp}
1.6
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 7225882f..64703944 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!
-
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.6.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.6.txt
new file mode 100644
index 00000000..ba9a1a20
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.6.txt
@@ -0,0 +1,570 @@
+
+ Apache Commons RNG 1.6 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.6
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+New features, updates and bug fixes (requires Java 8).
+
+Apache Commons RNG 1.6 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)
+ commons-rng-bom
+
+The code in module 'commons-rng-core' should not be accessed
+directly by applications; generators should be created using
+the 'commons-rng-simple' module.
+
+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-186: Correct the module OSGi exports. Use of multiple modules is validated in an OSGi
+ integration test.
+o RNG-184: New "ArraySampler" to support shuffling primitive and generic arrays with
+ sub-range support.
+
+
+Changes:
+o RNG-183: "InverseTransformParetoSampler": Modified to concentrate samples at the distribution
+ lower/upper bounds for extreme shape parameters. Eliminates generation of outlier
+ infinite samples and NaN samples under certain conditions. Changes sampling to use
+ the RNG nextLong() method in-place of nextDouble().
+
+
+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.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
+
+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" and "SharedStateObjectSampler" interfaces.
+ These interfaces are implemented by samplers returning an object.
+ This changes the functional compatibility of existing samplers that implement
+ SharedStatedSampler: CollectionSampler; CombinationSampler;
+ DiscreteProbabilityCollectionSampler; PermutationSampler; and UnitSphereSampler.
+ The method signature of the SharedStateSampler 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. It can now be assigned to SharedStateObjectSampler
+ which can be used to generate samples of type .
+ Code that assigned to SharedStatedSampler 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
+
+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.3 contains the following library modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+
+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 9+.
+
+Additional code is provided in the following module:
+ commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation. The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+New features:
+o RNG-117: Additional "XorShiRo" family generators. This adds 4 PlusPlus general purpose variants
+ of existing generators and 3 variants of a large state (1024-bit) generator.
+o RNG-117: "RandomSource": Support creating a byte[] seed suitable for the implementing
+ generator class.
+o RNG-116: "RandomSource": Expose interfaces supported by the implementing generator class
+ with methods isJumpable() and isLongJumpable().
+o RNG-111: New "JenkinsSmallFast32" and "JenkinsSmallFast64" generators.
+o RNG-19: "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.
+o RNG-112: New "DotyHumphreySmallFastCounting32" and "DotyHumphreySmallFastCounting64" generators.
+o RNG-85: New "MiddleSquareWeylSequence" generator.
+o RNG-110: Factory methods for Discrete and Continuous distribution samplers. The factory method
+ can choose the optimal implementation for the distribution parameters.
+o RNG-84: 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. Thanks to Abhishek Singh Dhadwal.
+o RNG-102: 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.
+o RNG-108: Update "SeedFactory" to improve performance.
+o RNG-99: 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.
+o RNG-100: New "GuideTableDiscreteSampler" that can sample from any discrete distribution defined
+ by an array of probabilities.
+o RNG-98: New "LongJumpableUniformRandomProvider" interface extends JumpableUniformRandomProvider
+ with a long jump method.
+o RNG-97: 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.
+o RNG-101: 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.
+o RNG-91: New "KempSmallMeanPoissonSampler" that provides Poisson samples using only 1 random
+ deviate per sample. This algorithm outperforms the SmallMeanPoissonSampler
+ when the generator is slow.
+o RNG-70: 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.
+o RNG-82: 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.
+o RNG-78: New "ThreadLocalRandomSource" class provides thread safe access to random generators.
+o RNG-79: Benchmark methods for producing nextDouble and nextFloat.
+o RNG-72: Add new JMH benchmark ConstructionPerformance.
+o RNG-71: Validate parameters for the distribution samplers.
+o RNG-67: Instructions for how to build and run the examples-stress code.
+o RNG-69: New "GeometricSampler" class.
+
+Fixed Bugs:
+o RNG-115: "JDKRandom": Fixed the restore state method to function when the instance has not
+ previously been used to save state.
+o RNG-96: "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.
+o RNG-93: "SmallMeanPoissonSampler": Requires the Poisson probability for p(x=0) to be positive
+ setting an upper bound on the mean of approximately 744.44.
+o RNG-92: "LargeMeanPoissonSampler": Requires mean >= 1.
+
+Changes:
+o RNG-122: "SeedFactory": Use XoRoShiRo1024PlusPlus as the default source of randomness.
+o RNG-121: "ChengBetaSampler": Algorithms for different distribution parameters have
+ been delegated to specialised classes.
+o RNG-120: Update security of serialization code for java.util.Random instances. Implement
+ look-ahead deserialization or remove the use of ObjectInputStream.readObject().
+o RNG-76: "SplitMix64": Added primitive long constructor.
+o RNG-119: Add LongJumpable support to XoShiRo generators previously only supporting Jumpable.
+o RNG-114: "ListSampler": Select the shuffle algorithm based on the list type. This improves
+ performance for non-RandomAccess lists such as LinkedList.
+o RNG-109: "DiscreteProbabilityCollectionSampler": Use a faster enumerated probability
+ distribution sampler to replace the binary search algorithm.
+o RNG-90: "BaseProvider": Updated to use faster algorithm for nextInt(int).
+o RNG-95: "DiscreteUniformSampler": Updated to use faster algorithms for generation of ranges.
+o RNG-106: Ensure SeedFactory produces non-zero seed arrays. This avoids invalid seeding of
+ generators that cannot recover from a seed of zeros.
+o RNG-103: "LargeMeanPoissonSampler: Switch from SmallMeanPoissonSampler to use
+ KempSmallMeanPoissonSampler for the fractional mean sample.
+o RNG-75: "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.
+o RNG-77: "NumberFactory": Improve performance of int and long array to/from byte array
+ conversions.
+o RNG-88: Update the generation performance JMH benchmarks to have a reference baseline.
+o RNG-87: "MultiplyWithCarry256": Performance improvement by advancing state one step per sample.
+o RNG-81: "NumberFactory": Evenly sample all dyadic rationals between 0 and 1.
+o RNG-73: Add the methods used from UniformRandomProvider to each sampler in the sampling module.
+o RNG-74: "DiscreteUniformSampler": Algorithms for small and large integer ranges have
+ been delegated to specialised classes.
+o RNG-68: "AhrensDieterMarsagliaTsangGammaSampler": Algorithms for small and large theta have
+ been delegated to specialised classes.
+
+
+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.2 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.2
+
+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.2 contains the following library modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+
+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 9+.
+
+Additional code is provided in the following module:
+ commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation. The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-62: New "CombinationSampler" class. Thanks to Alex D. Herbert.
+
+Fixed Bugs:
+o RNG-59: Use JDK's "SecureRandom" to seed the "SeedFactory".
+o RNG-56: "ZigguratNormalizedGaussianSampler": Missing statements in least used branch.
+o RNG-55: "UnitSphereSampler": Prevent returning NaN components and forbid
+ negative dimension. Thanks to Alex D. Herbert.
+
+Changes:
+o RNG-63: "NumberFactory": Some methods have become obsolete following RNG-57.
+o RNG-64: "PermutationSampler" and "CombinationSampler" shared code moved to a utility class.
+ Thanks to Alex D. Herbert.
+o RNG-61: "PermutationSampler": Performance improvement. Thanks to Alex D. Herbert.
+o RNG-57: Cache for using up all the bits provided by the underlying source of randomness.
+ Thanks to Alex D. Herbert.
+o RNG-60: Use random seeds for unit testing.
+o RNG-52: Set conservative upper bound in "LargePoissonSampler" to avoid truncation.
+o RNG-58: Allow part of RNG state to be contained in base classes, e.g. to enable
+ caching in common code (see RNG-57).
+o RNG-51: "PoissonSampler": Performance improvement. Thanks to Alex D. Herbert.
+
+
+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.1 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.1
+
+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.1 contains the following library modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+
+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 9+.
+
+Additional code is provided in the following module:
+ commons-rng-examples (requires Java 9)
+It is however not part of the official API and no compatibility
+should be expected in subsequent releases.
+
+We would like to also note that unit tests in module 'commons-rng-sampling'
+are bound to fail with some probability; this is expected due to the nature
+of random number generation. The 'maven-surefire-plugin' can be configured
+to re-run tests that fail and pass the build if they succeed (the test will
+be marked as 'flaky' in the report).
+
+Changes in this version include:
+
+New features:
+o RNG-37: Implementation of the "Ziggurat" algorithm for Gaussian sampling.
+o RNG-47: "DiscreteProbabilityCollectionSampler": Sampling from a collection of items
+ with user-defined probabilities (feature ported from "Commons Math").
+o RNG-43: "LogNormalSampler" with user-defined underlying "NormalizedGaussianSampler".
+o RNG-39: "UnitSphereSampler": generate random vectors isotropically located
+ on the surface of a sphere (feature ported from "Commons Math").
+o RNG-36: "MarsagliaNormalizedGaussianSampler": Faster variation of the
+ Box-Muller algorithm.
+ This version is used within "AhrensDieterMarsagliaTsangGammaSampler"
+ "MarsagliaLogNormalSampler" and "PoissonSampler" (generated sequences
+ will thus differ from those generated by version 1.0 of the library).
+o RNG-35: New generic "GaussianSampler" based on "NormalizedGaussianSampler"
+ marker interface.
+ Implementation of "BoxMullerNormalizedGaussianSampler" deprecates
+ "BoxMullerGaussianSampler".
+
+Fixed Bugs:
+o RNG-53: Class "SamplerBase" has been deprecated. It was meant for internal use
+ only but, through inheritance, it allows incorrect usage of the sampler
+ classes.
+
+Changes:
+o RNG-50: "PoissonSampler": Algorithms for small mean and large mean have
+ been separated into dedicated classes. Cache precomputation has
+ been disabled as it is only marginally used and is a performance
+ hit for small sampling sets.Thanks to Alex D. Herbert.
+o RNG-42: Use "ZigguratNormalizedGaussianSampler" within the library.
+o RNG-46: Following RNG-43, "BoxMullerLogNormalSampler" has been deprecated.
+ Furthermore, its base class has been removed; although it is a binary
+ incompatibility, it cannot cause any problem that were not already
+ present in code using v1.0 of the library: Calls to the base class
+ would have raised a NPE.
+
+
+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.0 RELEASE NOTES
+
+The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.0
+
+The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.
+
+This is the first release of Apache Commons RNG.
+Apache Commons RNG 1.0 contains the following modules:
+ commons-rng-client-api (requires Java 6)
+ commons-rng-core (requires Java 6)
+ commons-rng-simple (requires Java 6)
+ commons-rng-sampling (requires Java 6)
+ commons-rng-jmh (requires Java 6)
+ commons-rng-examples (requires Java 7)
+
+No changes defined in this version.
+
+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/
diff --git a/src/site/xdoc/download_rng.xml b/src/site/xdoc/download_rng.xml
index 842a66a6..69c0696a 100644
--- a/src/site/xdoc/download_rng.xml
+++ b/src/site/xdoc/download_rng.xml
@@ -107,38 +107,38 @@ limitations under the License.
failing that using the
SHA512
hash (*.sha512
checksum files).
- The KEYS
+ The KEYS
file contains the public PGP keys used by Apache Commons developers
to sign releases.
-