This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch modularized_master
in repository https://gitbox.apache.org/repos/asf/commons-math.git

commit 7f383414c2fff5caba046f4a4c5d9ff7e674b22f
Author: Gilles Sadowski <gillese...@gmail.com>
AuthorDate: Mon May 24 02:31:12 2021 +0200

    MATH-1533: Javadoc explaining that the issue is actually not a problem.
    
    Corresponding unit test has been removed.
---
 .../legacy/distribution/EnumeratedDistribution.java | 14 ++++++++++++++
 .../distribution/EnumeratedIntegerDistribution.java |  6 +++++-
 .../EnumeratedIntegerDistributionTest.java          | 21 +++------------------
 3 files changed, 22 insertions(+), 19 deletions(-)

diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.java
index ffbccc9..8c032a0 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedDistribution.java
@@ -169,6 +169,20 @@ public class EnumeratedDistribution<T> implements 
Serializable {
 
     /**
      * Sampler functionality.
+     *
+     * <ul>
+     *  <li>
+     *   The cumulative probability distribution is created (and sampled from)
+     *   using the input order of the {@link 
EnumeratedDistribution#EnumeratedDistribution(List)
+     *   constructor arguments}: A different input order will create a 
different
+     *   sequence of samples.
+     *   The samples will only be reproducible with the same RNG starting from
+     *   the same RNG state and the same input order to constructor.
+     *  </li>
+     *  <li>
+     *   The minimum supported probability is 2<sup>-53</sup>.
+     *  </li>
+     * </ul>
      */
     public class Sampler {
         /** Underlying sampler. */
diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistribution.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistribution.java
index 75ad2c9..c6447d8 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistribution.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistribution.java
@@ -229,7 +229,11 @@ public class EnumeratedIntegerDistribution extends 
AbstractIntegerDistribution {
         return true;
     }
 
-    /** {@inheritDoc} */
+    /**
+     * {@inheritDoc}
+     *
+     * Refer to {@link EnumeratedDistribution.Sampler} for implementation 
details.
+     */
     @Override
     public DiscreteDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         return new DiscreteDistribution.Sampler() {
diff --git 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistributionTest.java
 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistributionTest.java
index fba5a30..1c11ec9 100644
--- 
a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistributionTest.java
+++ 
b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/distribution/EnumeratedIntegerDistributionTest.java
@@ -158,8 +158,7 @@ public class EnumeratedIntegerDistributionTest {
     public void testSample() {
         final int n = 1000000;
         final DiscreteDistribution.Sampler sampler
-            = 
testDistribution.createSampler(RandomSource.create(RandomSource.WELL_19937_C,
-                                                                 -334759360)); 
// fixed seed
+            = 
testDistribution.createSampler(RandomSource.create(RandomSource.WELL_19937_C));
         final int[] samples = AbstractIntegerDistribution.sample(n, sampler);
         Assert.assertEquals(n, samples.length);
         double sum = 0;
@@ -169,9 +168,9 @@ public class EnumeratedIntegerDistributionTest {
             sumOfSquares += samples[i] * samples[i];
         }
         Assert.assertEquals(testDistribution.getMean(),
-                sum / n, 1e-2);
+                            sum / n, 1e-2);
         Assert.assertEquals(testDistribution.getVariance(),
-                sumOfSquares / n - FastMath.pow(sum / n, 2), 1e-2);
+                            sumOfSquares / n - FastMath.pow(sum / n, 2), 1e-2);
     }
 
     @Test
@@ -181,18 +180,4 @@ public class EnumeratedIntegerDistributionTest {
         Assert.assertEquals(0.5, distribution.probability(2), 0);
         Assert.assertEquals(0.5, distribution.cumulativeProbability(1), 0);
     }
-
-    @Test
-    public void testMath1533() {
-        final EnumeratedIntegerDistribution d1 = new 
EnumeratedIntegerDistribution(new int[] {1, 2},
-                                                                               
    new double[] {0.3, 0.7});
-        final EnumeratedIntegerDistribution d2 = new 
EnumeratedIntegerDistribution(new int[] {2, 1},
-                                                                               
    new double[] {0.7, 0.3});
-
-        final int len = 24;
-        final RandomSource r = RandomSource.WELL_19937_C;
-        final int s = 42;
-        
Assert.assertTrue(Arrays.equals(AbstractIntegerDistribution.sample(len, 
d1.createSampler(RandomSource.create(r, s))),
-                                        
AbstractIntegerDistribution.sample(len, d2.createSampler(RandomSource.create(r, 
s)))));
-    }
 }

Reply via email to