Repository: commons-math
Updated Branches:
  refs/heads/master 91b2f4294 -> 02dd98a04


avoid allocating distribution bounds if there are no successes


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

Branch: refs/heads/master
Commit: 02dd98a04570a1beba88566281efcabc8ff6f73d
Parents: 91b2f42
Author: Dave Brosius <dbros...@mebigfatguy.com>
Authored: Sun May 29 17:27:37 2016 -0400
Committer: Dave Brosius <dbros...@mebigfatguy.com>
Committed: Sun May 29 17:27:37 2016 -0400

----------------------------------------------------------------------
 .../math4/stat/interval/ClopperPearsonInterval.java | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/02dd98a0/src/main/java/org/apache/commons/math4/stat/interval/ClopperPearsonInterval.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/stat/interval/ClopperPearsonInterval.java
 
b/src/main/java/org/apache/commons/math4/stat/interval/ClopperPearsonInterval.java
index bf5d6ad..ed0904c 100644
--- 
a/src/main/java/org/apache/commons/math4/stat/interval/ClopperPearsonInterval.java
+++ 
b/src/main/java/org/apache/commons/math4/stat/interval/ClopperPearsonInterval.java
@@ -35,19 +35,19 @@ public class ClopperPearsonInterval implements 
BinomialConfidenceInterval {
         IntervalUtils.checkParameters(numberOfTrials, numberOfSuccesses, 
confidenceLevel);
         double lowerBound = 0;
         double upperBound = 0;
-        final double alpha = (1.0 - confidenceLevel) / 2.0;
-
-        final FDistribution distributionLowerBound = new FDistribution(2 * 
(numberOfTrials - numberOfSuccesses + 1),
-                                                                       2 * 
numberOfSuccesses);
+ 
         if (numberOfSuccesses > 0) {
+            final double alpha = (1.0 - confidenceLevel) / 2.0;
+
+            final FDistribution distributionLowerBound = new FDistribution(2 * 
(numberOfTrials - numberOfSuccesses + 1),
+                                                                           2 * 
numberOfSuccesses);
             final double fValueLowerBound = 
distributionLowerBound.inverseCumulativeProbability(1 - alpha);
             lowerBound = numberOfSuccesses /
                          (numberOfSuccesses + (numberOfTrials - 
numberOfSuccesses + 1) * fValueLowerBound);
-        }
 
-        final FDistribution distributionUpperBound = new FDistribution(2 * 
(numberOfSuccesses + 1),
-                                                                       2 * 
(numberOfTrials - numberOfSuccesses));
-        if (numberOfSuccesses > 0) {
+
+            final FDistribution distributionUpperBound = new FDistribution(2 * 
(numberOfSuccesses + 1),
+                                                                           2 * 
(numberOfTrials - numberOfSuccesses));
             final double fValueUpperBound = 
distributionUpperBound.inverseCumulativeProbability(1 - alpha);
             upperBound = (numberOfSuccesses + 1) * fValueUpperBound /
                          (numberOfTrials - numberOfSuccesses + 
(numberOfSuccesses + 1) * fValueUpperBound);

Reply via email to