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; } /**