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-statistics.git
commit 1fb42314d59c2533f4021afabea6b0475afd760a Author: Alex Herbert <aherb...@apache.org> AuthorDate: Mon Aug 2 21:53:51 2021 +0100 Move default probability(x0, x1) method to interface --- .../distribution/AbstractDiscreteDistribution.java | 15 --------------- .../statistics/distribution/DiscreteDistribution.java | 12 ++++++++++-- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java index 8779a34..ff76dc7 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java @@ -26,21 +26,6 @@ import org.apache.commons.rng.sampling.distribution.InverseTransformDiscreteSamp */ abstract class AbstractDiscreteDistribution implements DiscreteDistribution { - /** - * {@inheritDoc} - * - * The default implementation uses the identity - * {@code P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)} - */ - @Override - public double probability(int x0, - int x1) { - if (x0 > x1) { - throw new DistributionException(DistributionException.INVALID_RANGE_LOW_GT_HIGH, - x0, x1); - } - return cumulativeProbability(x1) - cumulativeProbability(x0); - } /** * {@inheritDoc} diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java index 4c22b8a..1fbc666 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/DiscreteDistribution.java @@ -37,15 +37,23 @@ public interface DiscreteDistribution { /** * For a random variable {@code X} whose values are distributed according * to this distribution, this method returns {@code P(x0 < X <= x1)}. + * The default implementation uses the identity + * {@code P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)} * * @param x0 Lower bound (exclusive). * @param x1 Upper bound (inclusive). * @return the probability that a random variable with this distribution - * will take a value between {@code x0} and {@code x1}, excluding the lower + * takes a value between {@code x0} and {@code x1}, excluding the lower * and including the upper endpoint. * @throws IllegalArgumentException if {@code x0 > x1}. */ - double probability(int x0, int x1); + default double probability(int x0, + int x1) { + if (x0 > x1) { + throw new DistributionException(DistributionException.INVALID_RANGE_LOW_GT_HIGH, x0, x1); + } + return cumulativeProbability(x1) - cumulativeProbability(x0); + } /** * For a random variable {@code X} whose values are distributed according