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 54816bcfa6b6f681cbbc7ea754324aa9b2c14380
Author: Alex Herbert <aherb...@apache.org>
AuthorDate: Fri Oct 8 23:18:40 2021 +0100

    More use of the RegularizedBeta function complement
    
    Add documentation where the complement is used.
    
    Add use of the complement in the BetaDistribution.
---
 .../apache/commons/statistics/distribution/BetaDistribution.java   | 2 +-
 .../org/apache/commons/statistics/distribution/FDistribution.java  | 7 +++++--
 .../commons/statistics/distribution/RegularizedBetaUtils.java      | 2 ++
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
index 28a9097..28fe764 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
@@ -155,7 +155,7 @@ public class BetaDistribution extends 
AbstractContinuousDistribution {
         } else if (x >= 1) {
             return 0;
         } else {
-            return RegularizedBeta.value(1 - x, beta, alpha);
+            return RegularizedBetaUtils.complement(x, alpha, beta);
         }
     }
 
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
index f48e266..6fb7530 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/FDistribution.java
@@ -180,9 +180,12 @@ public class FDistribution extends 
AbstractContinuousDistribution {
         final double n = numeratorDegreesOfFreedom;
         final double m = denominatorDegreesOfFreedom;
 
+        // Comute the complement of the regularized beta function
+        // with direct computation of 1 - z:
+        // 1 - I(z, a, b) = I(1 - z, b, a)
         return RegularizedBeta.value(m / (m + n * x),
-                0.5 * m,
-                0.5 * n);
+                                     0.5 * m,
+                                     0.5 * n);
     }
 
     /**
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/RegularizedBetaUtils.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/RegularizedBetaUtils.java
index 7ca809f..646f77d 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/RegularizedBetaUtils.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/RegularizedBetaUtils.java
@@ -38,6 +38,8 @@ final class RegularizedBetaUtils {
      * @return the complement of the regularized beta function 1 - I(x, a, b).
      */
     static double complement(double x, double a, double b) {
+        // See: http://functions.wolfram.com/06.21.17.0008.01
+
         // Identity of the regularized beta function: 1 - I_x(a, b) = 
I_{1-x}(b, a)
         // Ideally call RegularizedBeta.value(1 - x, b, a) to maximise 
precision.
         //

Reply via email to