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 0920e80f7fb2cfebbf32499258dec1a89f6373df
Author: aherbert <aherb...@apache.org>
AuthorDate: Fri Jul 30 12:14:29 2021 +0100

    Cache upper - lower for computations
---
 .../distribution/UniformContinuousDistribution.java          | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
index cf82be8..357a2bc 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
@@ -28,6 +28,8 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
     private final double lower;
     /** Upper bound of this distribution (exclusive). */
     private final double upper;
+    /** Range between the upper and lower bound of this distribution (cached 
for computaions). */
+    private final double upperMinusLower;
 
     /**
      * Creates a uniform distribution.
@@ -45,6 +47,7 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
 
         this.lower = lower;
         this.upper = upper;
+        upperMinusLower = upper - lower;
     }
 
     /** {@inheritDoc} */
@@ -54,7 +57,7 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
             x > upper) {
             return 0;
         }
-        return 1 / (upper - lower);
+        return 1.0 / upperMinusLower;
     }
 
     /** {@inheritDoc} */
@@ -66,7 +69,7 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
         if (x >= upper) {
             return 1;
         }
-        return (x - lower) / (upper - lower);
+        return (x - lower) / upperMinusLower;
     }
 
     /** {@inheritDoc} */
@@ -76,7 +79,7 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
             p > 1) {
             throw new 
DistributionException(DistributionException.INVALID_PROBABILITY, p);
         }
-        return p * (upper - lower) + lower;
+        return p * upperMinusLower + lower;
     }
 
     /**
@@ -98,8 +101,7 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
      */
     @Override
     public double getVariance() {
-        final double ul = upper - lower;
-        return ul * ul / 12;
+        return upperMinusLower * upperMinusLower / 12;
     }
 
     /**

Reply via email to