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 234890b04dc5caf568af47ee59771ff809fe5085 Author: Alex Herbert <aherb...@apache.org> AuthorDate: Tue Aug 3 00:01:18 2021 +0100 Remove PoissonDistribution normalApproximateProbability --- .../statistics/distribution/PoissonDistribution.java | 20 -------------------- .../distribution/PoissonDistributionTest.java | 18 ------------------ 2 files changed, 38 deletions(-) diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java index bfcabed..7cfe1d0 100644 --- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java +++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java @@ -30,8 +30,6 @@ public class PoissonDistribution extends AbstractDiscreteDistribution { private static final int DEFAULT_MAX_ITERATIONS = 10000000; /** Default convergence criterion. */ private static final double DEFAULT_EPSILON = 1e-12; - /** Distribution used to compute normal approximation. */ - private final NormalDistribution normal; /** Mean of the distribution. */ private final double mean; /** Maximum number of iterations for cumulative probability. */ @@ -68,8 +66,6 @@ public class PoissonDistribution extends AbstractDiscreteDistribution { mean = p; this.epsilon = epsilon; this.maxIterations = maxIterations; - - normal = new NormalDistribution(p, Math.sqrt(p)); } /** {@inheritDoc} */ @@ -117,22 +113,6 @@ public class PoissonDistribution extends AbstractDiscreteDistribution { maxIterations); } - /** - * Calculates the Poisson distribution function using a normal - * approximation. The {@code N(mean, sqrt(mean))} distribution is used - * to approximate the Poisson distribution. The computation uses - * "half-correction" (evaluating the normal distribution function at - * {@code x + 0.5}). - * - * @param x Upper bound, inclusive. - * @return the distribution function value calculated using a normal - * approximation. - */ - public double normalApproximateProbability(int x) { - // Calculate the probability using half-correction. - return normal.cumulativeProbability(x + 0.5); - } - /** {@inheritDoc} */ @Override public double getMean() { diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java index dd95696..7257887 100644 --- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java +++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/PoissonDistributionTest.java @@ -109,24 +109,6 @@ class PoissonDistributionTest extends DiscreteDistributionAbstractTest { //-------------------- Additional test cases ------------------------------- /** - * Test the normal approximation of the Poisson distribution by - * calculating P(90 ≤ X ≤ 110) for X = Po(100) and - * P(9900 ≤ X ≤ 10200) for X = Po(10000) - */ - @Test - void testNormalApproximateProbability() { - PoissonDistribution dist = new PoissonDistribution(100); - double result = dist.normalApproximateProbability(110) - - dist.normalApproximateProbability(89); - Assertions.assertEquals(0.706281887248, result, 1e-10); - - dist = new PoissonDistribution(10000); - result = dist.normalApproximateProbability(10200) - - dist.normalApproximateProbability(9899); - Assertions.assertEquals(0.820070051552, result, 1E-10); - } - - /** * Test the degenerate cases of a 0.0 and 1.0 inverse cumulative probability. */ @Test