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.herb...@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()); } }