Merge branch 'master' into 1.3-release
diff --git a/README.md b/README.md
index 66e67d7..c502404 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -74,12 +74,12 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index a6a99a0..b429d75 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -1,4 +1,125 @@
+ 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.
+It must be noted that, due to the nature of random number generation, some of 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-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
@@ -44,3 +165,87 @@
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.
+
+
+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/commons-rng-client-api/README.md b/commons-rng-client-api/README.md
index 2ac21b9..03a5802 100644
--- a/commons-rng-client-api/README.md
+++ b/commons-rng-client-api/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -67,7 +67,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-client-api/pom.xml b/commons-rng-client-api/pom.xml
index 5544938..d07193e 100644
--- a/commons-rng-client-api/pom.xml
+++ b/commons-rng-client-api/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>Apache Commons RNG Client API</name>
<description>API for client code that uses random numbers generators.</description>
diff --git a/commons-rng-core/README.md b/commons-rng-core/README.md
index 2652d4c..8f8b2a4 100644
--- a/commons-rng-core/README.md
+++ b/commons-rng-core/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -71,7 +71,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-core/pom.xml b/commons-rng-core/pom.xml
index e027ec6..01cbba9 100644
--- a/commons-rng-core/pom.xml
+++ b/commons-rng-core/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>Apache Commons RNG Core</name>
<description>Pure Java implementations of random numbers generator algorithms.
@@ -51,7 +51,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<!-- For testing floating point precision -->
diff --git a/commons-rng-examples/README.md b/commons-rng-examples/README.md
index ede4f66..11c10bf 100644
--- a/commons-rng-examples/README.md
+++ b/commons-rng-examples/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -69,7 +69,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-jmh/README.md b/commons-rng-examples/examples-jmh/README.md
index 6b1ac19..6354cb0 100644
--- a/commons-rng-examples/examples-jmh/README.md
+++ b/commons-rng-examples/examples-jmh/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-jmh/pom.xml b/commons-rng-examples/examples-jmh/pom.xml
index 0335052..d306632 100644
--- a/commons-rng-examples/examples-jmh/pom.xml
+++ b/commons-rng-examples/examples-jmh/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>JMH Benchmark</name>
<description>Code for running JMH benchmarks that assess the performance of the generators.
diff --git a/commons-rng-examples/examples-jpms/README.md b/commons-rng-examples/examples-jpms/README.md
index 49e122f..f14e600 100644
--- a/commons-rng-examples/examples-jpms/README.md
+++ b/commons-rng-examples/examples-jpms/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -67,7 +67,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-jpms/jpms-app/README.md b/commons-rng-examples/examples-jpms/jpms-app/README.md
index 232f236..d3c0dc0 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/README.md
+++ b/commons-rng-examples/examples-jpms/jpms-app/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -67,7 +67,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-jpms/jpms-app/pom.xml b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
index 7fccfe3..a6b2f78 100644
--- a/commons-rng-examples/examples-jpms/jpms-app/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-app/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>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.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
</dependencies>
diff --git a/commons-rng-examples/examples-jpms/jpms-lib/README.md b/commons-rng-examples/examples-jpms/jpms-lib/README.md
index 743c017..d70f5fd 100644
--- a/commons-rng-examples/examples-jpms/jpms-lib/README.md
+++ b/commons-rng-examples/examples-jpms/jpms-lib/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -67,7 +67,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
index 512b9b7..e938ba0 100644
--- a/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
+++ b/commons-rng-examples/examples-jpms/jpms-lib/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>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 b9f428e..db1b795 100644
--- a/commons-rng-examples/examples-jpms/pom.xml
+++ b/commons-rng-examples/examples-jpms/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<packaging>pom</packaging>
<name>JPMS Integration test</name>
diff --git a/commons-rng-examples/examples-jpms/runApp.sh b/commons-rng-examples/examples-jpms/runApp.sh
index 53070fd..4230200 100755
--- a/commons-rng-examples/examples-jpms/runApp.sh
+++ b/commons-rng-examples/examples-jpms/runApp.sh
@@ -19,7 +19,7 @@
# "mvn package" from the top level project directory).
TOPDIR=../..
-RNGVERSION=1.3-SNAPSHOT
+RNGVERSION=1.3
TARGETDIR=target
# Module path.
diff --git a/commons-rng-examples/examples-quadrature/README.md b/commons-rng-examples/examples-quadrature/README.md
index e82cdd6..949f997 100644
--- a/commons-rng-examples/examples-quadrature/README.md
+++ b/commons-rng-examples/examples-quadrature/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-quadrature/pom.xml b/commons-rng-examples/examples-quadrature/pom.xml
index 18b5026..139afe7 100644
--- a/commons-rng-examples/examples-quadrature/pom.xml
+++ b/commons-rng-examples/examples-quadrature/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>Quadrature example</name>
<description>Contains examples for computing numerical quadrature (integration).
diff --git a/commons-rng-examples/examples-sampling/README.md b/commons-rng-examples/examples-sampling/README.md
index 2c19c1a..eb01a72 100644
--- a/commons-rng-examples/examples-sampling/README.md
+++ b/commons-rng-examples/examples-sampling/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-sampling/pom.xml b/commons-rng-examples/examples-sampling/pom.xml
index 955fd1c..f9ff05a 100644
--- a/commons-rng-examples/examples-sampling/pom.xml
+++ b/commons-rng-examples/examples-sampling/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</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/README.md b/commons-rng-examples/examples-stress/README.md
index 45972b7..fcc58e7 100644
--- a/commons-rng-examples/examples-stress/README.md
+++ b/commons-rng-examples/examples-stress/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-examples/examples-stress/pom.xml b/commons-rng-examples/examples-stress/pom.xml
index 3c01926..5fa70aa 100644
--- a/commons-rng-examples/examples-stress/pom.xml
+++ b/commons-rng-examples/examples-stress/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</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 c63e546..c8b4ab4 100644
--- a/commons-rng-examples/pom.xml
+++ b/commons-rng-examples/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<packaging>pom</packaging>
<name>Apache Commons RNG Examples</name>
@@ -57,17 +57,17 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>info.picocli</groupId>
diff --git a/commons-rng-sampling/README.md b/commons-rng-sampling/README.md
index 44e47ec..918b535 100644
--- a/commons-rng-sampling/README.md
+++ b/commons-rng-sampling/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -68,7 +68,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-sampling/pom.xml b/commons-rng-sampling/pom.xml
index c0da2e4..62a505f 100644
--- a/commons-rng-sampling/pom.xml
+++ b/commons-rng-sampling/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>Apache Commons RNG Sampling</name>
<description>The Apache Commons RNG Sampling module provides samplers
@@ -48,13 +48,13 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<scope>test</scope>
</dependency>
diff --git a/commons-rng-simple/README.md b/commons-rng-simple/README.md
index af6f417..c4f4fdd 100644
--- a/commons-rng-simple/README.md
+++ b/commons-rng-simple/README.md
@@ -35,7 +35,7 @@
| |
| <properties> |
| <commons.componentid>rng</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -67,7 +67,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.2</version>
+ <version>1.3</version>
</dependency>
```
diff --git a/commons-rng-simple/pom.xml b/commons-rng-simple/pom.xml
index a9526e0..2ba52aa 100644
--- a/commons-rng-simple/pom.xml
+++ b/commons-rng-simple/pom.xml
@@ -23,12 +23,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<name>Apache Commons RNG Simple</name>
<description>Simple API for instantiating random numbers generators.</description>
@@ -48,7 +48,7 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
diff --git a/dist-archive/pom.xml b/dist-archive/pom.xml
index 127bc16..55a6f8d 100644
--- a/dist-archive/pom.xml
+++ b/dist-archive/pom.xml
@@ -25,12 +25,12 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<packaging>pom</packaging>
<name>Apache Commons RNG (full distribution)</name>
<description>This module creates the Apache Commons RNG distribution.</description>
@@ -39,13 +39,13 @@
<checkstyle.skip>true</checkstyle.skip>
<animal.sniffer.skip>true</animal.sniffer.skip>
<!-- Commons Release Plugin -->
- <commons.bc.version>1.0</commons.bc.version>
+ <commons.bc.version>1.2</commons.bc.version>
<commons.release.isDistModule>true</commons.release.isDistModule>
<commons.siteOutputDirectory>${basedir}/../target/site</commons.siteOutputDirectory>
<commons.releaseNotesLocation>${basedir}/../RELEASE-NOTES.txt</commons.releaseNotesLocation>
<commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
- <commons.releaseManagerName>Gilles Sadowski</commons.releaseManagerName>
- <commons.releaseManagerKey>B39617E095CD748DFE505816703413011E22D5B8</commons.releaseManagerKey>
+ <commons.releaseManagerName>Alex Herbert</commons.releaseManagerName>
+ <commons.releaseManagerKey>BC87A3FD0A54480F0BADBEBD21939FF0CA2A6567</commons.releaseManagerKey>
</properties>
@@ -71,18 +71,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-client-api</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -90,18 +90,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-core</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -109,18 +109,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-simple</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -128,18 +128,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -147,18 +147,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jmh</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -166,35 +166,35 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-app</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-jpms-lib</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -202,18 +202,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-quadrature</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -221,18 +221,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-sampling</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
@@ -240,18 +240,18 @@
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>sources</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-examples-stress</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<classifier>javadoc</classifier>
</dependency>
diff --git a/pom.xml b/pom.xml
index 22e31f0..0fdaf0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-rng-parent</artifactId>
- <version>1.3-SNAPSHOT</version>
+ <version>1.3</version>
<packaging>pom</packaging>
<name>Apache Commons RNG</name>
<description>The Apache Commons RNG project provides pure-Java implementation of pseudo-random generators.</description>
@@ -43,7 +43,7 @@
<!-- Java 9+ -->
<commons.automatic.module.name>org.apache.commons.rng.parent</commons.automatic.module.name>
<!-- do not use snapshot suffix here -->
- <commons.release.version>1.2</commons.release.version>
+ <commons.release.version>1.3</commons.release.version>
<commons.rc.version>RC1</commons.rc.version>
<commons.release.desc>(requires Java 6+)</commons.release.desc>
<commons.binary.suffix>-bin</commons.binary.suffix>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d45e789..fc2c722 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -51,7 +51,7 @@
</properties>
<body>
- <release version="1.3" date="TBD" description="
+ <release version="1.3" date="2019-11-08" description="
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:
diff --git a/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt b/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt
new file mode 100644
index 0000000..b429d75
--- /dev/null
+++ b/src/site/resources/release-notes/RELEASE-NOTES-1.3.txt
@@ -0,0 +1,251 @@
+
+ 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.
+It must be noted that, due to the nature of random number generation, some of 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-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.
+It must be noted that, due to the nature of random number generation, some of 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-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.
+
+
+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 c542285..7c6630f 100644
--- a/src/site/xdoc/download_rng.xml
+++ b/src/site/xdoc/download_rng.xml
@@ -36,14 +36,14 @@
| (defaults to "-bin", set to "" for pre-maven2 releases) |
| - commons.release.desc (optional) |
| - commons.release.subdir (optional) |
- | - commons.release.hash (optional, lowercase, default sha256) |
+ | - commons.release.hash (optional, lowercase, default sha512) |
| |
| - commons.release.[234].version (conditional) |
| - commons.release.[234].name (conditional) |
| - commons.release.[234].binary.suffix (optional) |
| - commons.release.[234].desc (optional) |
| - commons.release.[234].subdir (optional) |
- | - commons.release.[234].hash (optional, lowercase, [sha256])|
+ | - commons.release.[234].hash (optional, lowercase, [sha512])|
| |
| 3) Example Properties |
| (commons.release.name inherited by parent: |
@@ -51,7 +51,7 @@
| |
| <properties> |
| <commons.componentid>math</commons.componentid> |
- | <commons.release.version>1.2</commons.release.version> |
+ | <commons.release.version>1.3</commons.release.version> |
| </properties> |
| |
+======================================================================+
@@ -66,7 +66,7 @@
<subsection name="Using a Mirror">
<p>
We recommend you use a mirror to download our release
- builds, but you <strong>must</strong> <a href="http://www.apache.org/info/verification.html">verify the integrity</a> of
+ builds, but you <strong>must</strong> <a href="https://www.apache.org/info/verification.html">verify the integrity</a> of
the downloaded files using signatures downloaded from our main
distribution directories. Recent releases (48 hours) may not yet
be available from all the mirrors.
@@ -104,7 +104,7 @@
It is essential that you
<a href="https://www.apache.org/info/verification.html">verify the integrity</a>
of downloaded files, preferably using the <code>PGP</code> signature (<code>*.asc</code> files);
- failing that using the <code>SHA256</code> hash (<code>*.sha256</code> checksum files).
+ failing that using the <code>SHA512</code> hash (<code>*.sha512</code> checksum files).
</p>
<p>
The <a href="https://www.apache.org/dist/commons/KEYS">KEYS</a>
@@ -113,32 +113,32 @@
</p>
</subsection>
</section>
- <section name="Apache Commons RNG 1.2 (requires Java 6+)">
+ <section name="Apache Commons RNG 1.3 (requires Java 6+)">
<subsection name="Binaries">
<table>
<tr>
- <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.2-bin.tar.gz">commons-rng-1.2-bin.tar.gz</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.2-bin.tar.gz.sha256">sha256</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.2-bin.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.3-bin.tar.gz">commons-rng-1.3-bin.tar.gz</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.2-bin.zip">commons-rng-1.2-bin.zip</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.2-bin.zip.sha256">sha256</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.2-bin.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/binaries/commons-rng-1.3-bin.zip">commons-rng-1.3-bin.zip</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.zip.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/binaries/commons-rng-1.3-bin.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
<subsection name="Source">
<table>
<tr>
- <td><a href="[preferred]/commons/rng/source/commons-rng-1.2-src.tar.gz">commons-rng-1.2-src.tar.gz</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.2-src.tar.gz.sha256">sha256</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.2-src.tar.gz.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/source/commons-rng-1.3-src.tar.gz">commons-rng-1.3-src.tar.gz</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.tar.gz.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.tar.gz.asc">pgp</a></td>
</tr>
<tr>
- <td><a href="[preferred]/commons/rng/source/commons-rng-1.2-src.zip">commons-rng-1.2-src.zip</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.2-src.zip.sha256">sha256</a></td>
- <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.2-src.zip.asc">pgp</a></td>
+ <td><a href="[preferred]/commons/rng/source/commons-rng-1.3-src.zip">commons-rng-1.3-src.zip</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.zip.sha512">sha512</a></td>
+ <td><a href="https://www.apache.org/dist/commons/rng/source/commons-rng-1.3-src.zip.asc">pgp</a></td>
</tr>
</table>
</subsection>
diff --git a/src/site/xdoc/release-history.xml b/src/site/xdoc/release-history.xml
index 6a797ec..92f6d2a 100644
--- a/src/site/xdoc/release-history.xml
+++ b/src/site/xdoc/release-history.xml
@@ -20,11 +20,14 @@
</properties>
<body>
<!-- ================================================== -->
- <section name="Commons Text Release History">
- <p><em>Note.</em> For older javadocs see the individal artifact sub-sites.</p>
+ <section name="Commons RNG Release History">
+ <p><em>Note.</em> For older release javadocs see the individual artifact sub-sites.</p>
<table>
<tr><th>Version</th><th>Release date (YYYY-MM-DD)</th><th>Required Java Version</th><th>Release notes</th></tr>
<tr>
+ <td>1.3</td><td>2019-11-08</td><td>6+</td><td><a href="release-notes/RELEASE-NOTES-1.3.txt">release notes for 1.3</a></td>
+ </tr>
+ <tr>
<td>1.2</td><td>2018-12-07</td><td>6+</td><td><a href="release-notes/RELEASE-NOTES-1.2.txt">release notes for 1.2</a></td>
</tr>
<tr>