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.

-
+
- - - + + + - - - + + +
commons-rng-1.5-bin.tar.gzsha512pgpcommons-rng-1.6-bin.tar.gzsha512pgp
commons-rng-1.5-bin.zipsha512pgpcommons-rng-1.6-bin.zipsha512pgp
- - - + + + - - - + + +
commons-rng-1.5-src.tar.gzsha512pgpcommons-rng-1.6-src.tar.gzsha512pgp
commons-rng-1.5-src.zipsha512pgpcommons-rng-1.6-src.zipsha512pgp