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 2020/06/24 12:59:18 UTC

[commons-statistics] 10/11: Simplify chebyshevApplies condition:

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 4d4fb521e25ebe4b371ec8e7c235347f40b858a7
Author: aherbert <ah...@apache.org>
AuthorDate: Wed Jun 24 13:48:30 2020 +0100

    Simplify chebyshevApplies condition:
    
    Instead of testing the values are not infinite or NaN, test if the
    values are finite.
    
    Note: Double.isFinite was introduced in Java 1.8 and so was unavailable in the original code from commons-math.
---
 .../statistics/distribution/AbstractContinuousDistribution.java  | 4 ++--
 .../statistics/distribution/AbstractDiscreteDistribution.java    | 9 ++++-----
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
index 0d8f3f7..62cdc6b 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
@@ -99,8 +99,8 @@ abstract class AbstractContinuousDistribution
 
         final double mu = getMean();
         final double sig = Math.sqrt(getVariance());
-        final boolean chebyshevApplies = !(Double.isInfinite(mu)  || Double.isNaN(mu) ||
-                                           Double.isInfinite(sig) || Double.isNaN(sig));
+        final boolean chebyshevApplies = Double.isFinite(mu) &&
+                                         Double.isFinite(sig);
 
         if (lowerBound == Double.NEGATIVE_INFINITY) {
             if (chebyshevApplies) {
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 abc16ca..5821181 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
@@ -83,11 +83,10 @@ abstract class AbstractDiscreteDistribution
         // cf. AbstractRealDistribution.inverseCumulativeProbability(double)
         final double mu = getMean();
         final double sigma = Math.sqrt(getVariance());
-        final boolean chebyshevApplies = !(Double.isInfinite(mu) ||
-                                           Double.isNaN(mu) ||
-                                           Double.isInfinite(sigma) ||
-                                           Double.isNaN(sigma) ||
-                                           sigma == 0.0);
+        final boolean chebyshevApplies = Double.isFinite(mu) &&
+                                         Double.isFinite(sigma) &&
+                                         sigma != 0.0;
+
         if (chebyshevApplies) {
             double k = Math.sqrt((1.0 - p) / p);
             double tmp = mu - k * sigma;