Avoid repeated computations.

Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/b05bd69c
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/b05bd69c
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/b05bd69c

Branch: refs/heads/master
Commit: b05bd69cdd841c02a3b645568ee5478fdbfc07d1
Parents: 34adc60
Author: Gilles <er...@apache.org>
Authored: Thu Jun 22 03:14:35 2017 +0200
Committer: Gilles <er...@apache.org>
Committed: Thu Jun 22 03:14:35 2017 +0200

----------------------------------------------------------------------
 .../math4/stat/interval/WilsonScoreInterval.java      | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/b05bd69c/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java 
b/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java
index f36bd3b..f46ce4c 100644
--- 
a/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java
+++ 
b/src/main/java/org/apache/commons/math4/stat/interval/WilsonScoreInterval.java
@@ -33,18 +33,18 @@ public class WilsonScoreInterval implements 
BinomialConfidenceInterval {
     @Override
     public ConfidenceInterval createInterval(int numberOfTrials, int 
numberOfSuccesses, double confidenceLevel) {
         IntervalUtils.checkParameters(numberOfTrials, numberOfSuccesses, 
confidenceLevel);
-        final double alpha = (1.0 - confidenceLevel) / 2;
+        final double alpha = (1 - confidenceLevel) / 2;
         final NormalDistribution normalDistribution = new NormalDistribution();
         final double z = normalDistribution.inverseCumulativeProbability(1 - 
alpha);
         final double zSquared = z * z;
-        final double zSquaredOverNumTrials = zSquared / numberOfTrials;
-        final double mean = (double) numberOfSuccesses / (double) 
numberOfTrials;
+        final double oneOverNumTrials = 1d / numberOfTrials;
+        final double zSquaredOverNumTrials = zSquared * oneOverNumTrials;
+        final double mean = oneOverNumTrials * numberOfSuccesses;
 
-        final double factor = 1.0 / (1 + zSquaredOverNumTrials);
+        final double factor = 1 / (1 + zSquaredOverNumTrials);
         final double modifiedSuccessRatio = mean + zSquaredOverNumTrials / 2;
-        final double difference = z *
-                                  FastMath.sqrt(1.0 / numberOfTrials * mean * 
(1 - mean) +
-                                                (zSquaredOverNumTrials / (4 * 
numberOfTrials)));
+        final double difference = z * FastMath.sqrt(oneOverNumTrials * mean * 
(1 - mean) +
+                                                    (oneOverNumTrials * 
zSquaredOverNumTrials / 4));
 
         final double lowerBound = factor * (modifiedSuccessRatio - difference);
         final double upperBound = factor * (modifiedSuccessRatio + difference);

Reply via email to