Skip to content

Commit 6f2e939

Browse files
committed
Release candidate.
1 parent 5f64030 commit 6f2e939

File tree

24 files changed

+582
-69
lines changed

24 files changed

+582
-69
lines changed

RELEASE-NOTES.txt

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,109 @@
11

2+
Apache Commons RNG 1.4 RELEASE NOTES
3+
4+
The Apache Commons RNG team is pleased to announce the release of Apache Commons RNG 1.4
5+
6+
The Apache Commons RNG project provides pure-Java implementation
7+
of pseudo-random generators.
8+
9+
This is a minor release of Apache Commons RNG, containing a
10+
few new features and performance improvements.
11+
12+
Apache Commons RNG 1.4 contains the following library modules:
13+
commons-rng-client-api (requires Java 8)
14+
commons-rng-core (requires Java 8)
15+
commons-rng-simple (requires Java 8)
16+
commons-rng-sampling (requires Java 8)
17+
18+
The code in module 'commons-rng-core' should not be accessed
19+
directly by applications as a future release might make use of
20+
the JPMS modularization feature available in Java 11+.
21+
22+
Additional code is provided in the following modules:
23+
commons-rng-examples-quadrature (requires Java 8)
24+
commons-rng-examples-jmh (requires Java 8)
25+
commons-rng-examples-sampling (requires Java 8)
26+
commons-rng-examples-stress (requires Java 8)
27+
commons-rng-examples-jpms (requires Java 11)
28+
29+
It is however not part of the official API and no compatibility
30+
should be expected in subsequent releases.
31+
32+
It must be noted that, due to the nature of random number generation, some unit tests
33+
are bound to fail with some probability. The 'maven-surefire-plugin' is configured
34+
to re-run tests that fail, and pass the build if they succeed within the allotted
35+
number of reruns (the test will be marked as 'flaky' in the report).
36+
37+
Changes in this version include:
38+
39+
New features:
40+
o RNG-156: New "DirichletSampler" class to sample from a Dirichlet distribution.
41+
o RNG-137: New "StableSampler" class to sample from a stable distribution.
42+
o RNG-138: New "CompositeSamplers" class to sample from a weighted combination of samplers.
43+
o RNG-140: New "LongSampler" interface for sampling a long. New "UniformLongSampler" to sample
44+
from a range.
45+
o RNG-151: New "ZigguratSampler" implementation of the modified "Ziggurat" algorithm for
46+
Gaussian and exponential sampling.
47+
o RNG-147: New "LevySampler" to sample from a Levy distribution.
48+
o RNG-145: "ContinuousUniformSampler": Add optional support for an open interval: (lower, upper).
49+
o RNG-143: "RandomSource": Add an instance create method. Deprecate the static create method.
50+
o RNG-136: New "ObjectSampler<T>" and "SharedStateObjectSampler<T>" interfaces.
51+
These interfaces are implemented by samplers returning an object.
52+
This changes the functional compatibility of existing samplers that implement
53+
SharedStatedSampler<R>: CollectionSampler<T>; CombinationSampler;
54+
DiscreteProbabilityCollectionSampler<T>; PermutationSampler; and UnitSphereSampler.
55+
The method signature of the SharedStateSampler<R> interface remains
56+
'public R withUniformRandomProvider(UniformRandomProvider)'. The result can still be
57+
assigned to an instance of the same class R; it can no longer be assigned to an instance
58+
of SharedStatedSampler<R>. It can now be assigned to SharedStateObjectSampler<T>
59+
which can be used to generate samples of type <T>.
60+
Code that assigned to SharedStatedSampler<R> should be updated.
61+
o RNG-135: New "TetrahedronSampler" to sample uniformly from a tetrahedron.
62+
o RNG-134: New "BoxSampler" to sample uniformly from a box (or hyperrectangle).
63+
o RNG-133: New "LineSampler" to sample uniformly on a line segment.
64+
o RNG-131: New "TriangleSampler" to sample uniformly from a triangle.
65+
o RNG-132: New "o.a.c.rng.sampling.shape" package for sampling coordinates from shapes.
66+
o RNG-128: New "UnitBallSampler" to generate coordinates uniformly within an n-unit ball.
67+
o RNG-126: "PoissonSamplerCache": Method to return a SharedStateDiscreteSampler.
68+
o RNG-124: Add fixed increment versions of the PCG generators.
69+
70+
Fixed Bugs:
71+
o RNG-159: "ZigguratSampler.NormalizedGaussian": Corrected biased sampling within convex regions
72+
at the edge of the ziggurat.
73+
o RNG-146: "GaussianSampler": Prevent infinite mean and standard deviation.
74+
o RNG-144: "AhrensDieterExponentialSampler": Avoid possible infinite loop during sampling if the
75+
underlying UniformRandomProvider creates a zero for the uniform deviate.
76+
o RNG-130: "UnitSphereSampler": Fix 1 dimension sampling to only return vectors containing 1 or -1.
77+
78+
Changes:
79+
o RNG-163: Update test suite to JUnit 5.
80+
o Simplify assertions with simpler equivalent. Thanks to Arturo Bernal.
81+
o RNG-162: Update the minimum Java version to 1.8.
82+
o RNG-160: "ZigguratSampler.NormalizedGaussian": Performance improvement by extracting ziggurat
83+
edge sampling to a separate method.
84+
o RNG-157: "UnitSphereSampler": Deprecate public constructor. Use the factory constructor to create
85+
an optimal sampler.
86+
o RNG-155: "ZigguratNormalizedGaussianSampler": Update to a table size of 256.
87+
o RNG-152: Update samplers to use ZigguratSampler.NormalizedGaussian for Gaussian deviates.
88+
o RNG-154: Update Gaussian samplers to avoid infinity in the tails of the distribution. Applies
89+
to: ZigguratNormalisedGaussianSampler; BoxMullerNormalizedGaussianSampler; and
90+
BoxMullerGaussianSampler.
91+
o RNG-153: "UnitBallSampler": Update to use the ZigguratSampler for an exponential deviate for
92+
ball point picking.
93+
o RNG-150: Update "LargeMeanPoissonSampler" and "GeometricSampler" to use the ZigguratSampler for
94+
exponential deviates.
95+
o RNG-129: "UnitSphereSampler": Improve performance with specialisations for low order dimensions.
96+
Added a factory constructor to create the sampler.
97+
98+
99+
For complete information on Apache Commons RNG, including instructions on how to submit bug reports,
100+
patches, or suggestions for improvement, see the Apache Commons RNG website:
101+
102+
https://commons.apache.org/proper/commons-rng/
103+
104+
105+
=============================================================================
106+
2107
Apache Commons RNG 1.3 RELEASE NOTES
3108

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

commons-rng-client-api/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-parent</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-client-api</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG Client API</name>
3030

3131
<description>API for client code that uses random numbers generators.</description>

commons-rng-client-api/src/site/site.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
<item name="Overview" href="index.html"/>
2929
<item name="Latest API docs (development)"
3030
href="apidocs/index.html"/>
31+
<item name="Javadoc (1.4 release)"
32+
href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.4/index.html"/>
3133
<item name="Javadoc (1.3 release)"
3234
href="https://commons.apache.org/rng/commons-rng-client-api/javadocs/api-1.3/index.html"/>
3335
<item name="Javadoc (1.2 release)"

commons-rng-core/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-parent</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-core</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG Core</name>
3030

3131
<description>Pure Java implementations of random numbers generator algorithms.
@@ -49,7 +49,7 @@
4949
<dependency>
5050
<groupId>org.apache.commons</groupId>
5151
<artifactId>commons-rng-client-api</artifactId>
52-
<version>1.4-SNAPSHOT</version>
52+
<version>1.4</version>
5353
</dependency>
5454
<dependency>
5555
<!-- For testing floating point precision -->

commons-rng-core/src/site/site.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
<item name="Overview" href="index.html"/>
2929
<item name="Latest API docs (development)"
3030
href="apidocs/index.html"/>
31+
<item name="Javadoc (1.4 release)"
32+
href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.4/index.html"/>
3133
<item name="Javadoc (1.3 release)"
3234
href="https://commons.apache.org/rng/commons-rng-core/javadocs/api-1.3/index.html"/>
3335
<item name="Javadoc (1.2 release)"

commons-rng-examples/examples-jmh/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-examples</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-examples-jmh</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG JMH Benchmark</name>
3030

3131
<description>Code for running JMH benchmarks that assess the performance of the generators.

commons-rng-examples/examples-jpms/jpms-app/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-examples-jpms</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-examples-jpms-app</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG JPMS Module Example (Application)</name>
3030

3131
<description>Testing JPMS. Code in this module is not part of the public API.</description>
@@ -39,7 +39,7 @@
3939
<dependency>
4040
<groupId>org.apache.commons</groupId>
4141
<artifactId>commons-rng-examples-jpms-lib</artifactId>
42-
<version>1.4-SNAPSHOT</version>
42+
<version>1.4</version>
4343
</dependency>
4444
</dependencies>
4545

commons-rng-examples/examples-jpms/jpms-lib/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-examples-jpms</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-examples-jpms-lib</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG JPMS Module Example (Library)</name>
3030

3131
<description>Testing JPMS. Code in this module is not part of the public API.</description>

commons-rng-examples/examples-jpms/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-examples</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-examples-jpms</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<packaging>pom</packaging>
3030
<name>Apache Commons RNG JPMS Integration Test</name>
3131

commons-rng-examples/examples-quadrature/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121
<parent>
2222
<groupId>org.apache.commons</groupId>
2323
<artifactId>commons-rng-examples</artifactId>
24-
<version>1.4-SNAPSHOT</version>
24+
<version>1.4</version>
2525
</parent>
2626

2727
<artifactId>commons-rng-examples-quadrature</artifactId>
28-
<version>1.4-SNAPSHOT</version>
28+
<version>1.4</version>
2929
<name>Apache Commons RNG Quadrature Example</name>
3030

3131
<description>Contains examples for computing numerical quadrature (integration).

0 commit comments

Comments
 (0)