You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/02/14 13:59:28 UTC

[commons-rng] 05/17: RNG-69: Updated code formatting and GeometricSampler javadoc

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

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git

commit 77cfd26485c126c6245a9ae70a27000dbad8492f
Author: aherbert <a....@sussex.ac.uk>
AuthorDate: Tue Jan 29 12:29:38 2019 +0000

    RNG-69: Updated code formatting and GeometricSampler javadoc
---
 .../rng/sampling/distribution/GeometricSampler.java    | 18 +++++++++++-------
 .../sampling/distribution/DiscreteSamplersList.java    |  2 +-
 .../sampling/distribution/GeometricSamplerTest.java    |  2 +-
 3 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
index ab2a6c4..ba62ac4 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java
@@ -25,16 +25,20 @@ import org.apache.commons.rng.UniformRandomProvider;
  * <p>This distribution samples the number of failures before the first success taking values in the
  * set {@code [0, 1, 2, ...]}.
  *
- * <p>The sample is computed using a related an exponential distribution. If X is an exponentially
- * distributed random variable with parameter λ, then Y = floor(X) is a geometrically distributed
- * random variable with parameter p = 1 − e<sup>−λ</sup>, with {@code p} the probability of success.
+ * <p>The sample is computed using a related an exponential distribution. If {@code X} is an
+ * exponentially distributed random variable with parameter λ, then {@code Y = floor(X)} is a
+ * geometrically distributed random variable with parameter p = 1 − e<sup>−λ</sup>, with {@code p}
+ * the probability of success.
  *
- * <p>Note: As the probability of success ({@code p}) tends towards zero the mean of the
+ * <p>This sampler outperforms using the {@link InverseTransformDiscreteSampler} with an appropriate
+ * Geometric inverse cumulative probability function.
+ *
+ * <p>Usage note: As the probability of success ({@code p}) tends towards zero the mean of the
  * distribution ({@code (1-p)/p}) tends towards infinity and due to the use of {@code int} for the
- * sample this results in truncation of the distribution.
+ * sample this can result in truncation of the distribution.
  *
  * @see <a
- * href="https://en.wikipedia.org/wiki/Geometric_distribution#Related_distributions">geometric
+ * href="https://en.wikipedia.org/wiki/Geometric_distribution#Related_distributions">Geometric
  * distribution - related distributions</a>
  *
  * @since 1.3
@@ -118,7 +122,7 @@ public class GeometricSampler implements DiscreteSampler {
     public GeometricSampler(UniformRandomProvider rng, double probabilityOfSuccess) {
         if (probabilityOfSuccess <= 0 || probabilityOfSuccess > 1) {
             throw new IllegalArgumentException(
-                    "Probability of success must be in the range [0 < p <= 1]: " + probabilityOfSuccess);
+                "Probability of success must be in the range [0 < p <= 1]: " + probabilityOfSuccess);
         }
         delegate = probabilityOfSuccess == 1 ?
             GeometricP1Sampler.INSTANCE :
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
index 3f9adb8..3e93c86 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
@@ -50,7 +50,7 @@ public class DiscreteSamplersList {
                 MathArrays.sequence(10, 0, 1),
                 RandomSource.create(RandomSource.ISAAC));
             // Geometric.
-            add(LIST, new org.apache.commons.math3.distribution.GeometricDistribution(probSuccessGeometric),
+            add(LIST, new org.apache.commons.math3.distribution.GeometricDistribution(null, probSuccessGeometric),
                 MathArrays.sequence(10, 0, 1),
                 new GeometricSampler(RandomSource.create(RandomSource.XOR_SHIFT_1024_S), probSuccessGeometric));
 
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
index 8c5a39e..00f1000 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
@@ -65,7 +65,7 @@ public class GeometricSamplerTest {
         // All samples should be max value
         for (int i = 0; i < 10; i++) {
             Assert.assertEquals("p=(almost 0) should have Integer.MAX_VALUE for all samples", Integer.MAX_VALUE,
-                    sampler.sample());
+                sampler.sample());
         }
     }