From 9f9c79bc953f7c5e15a0c1cf45e32ddf86ee3c52 Mon Sep 17 00:00:00 2001 From: Joseph Lizier Date: Fri, 17 May 2019 22:24:54 +1000 Subject: [PATCH] Handling infinites in Chi square CDF function properly --- java/source/infodynamics/utils/MathsUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/java/source/infodynamics/utils/MathsUtils.java b/java/source/infodynamics/utils/MathsUtils.java index 7682b64..d438c5a 100755 --- a/java/source/infodynamics/utils/MathsUtils.java +++ b/java/source/infodynamics/utils/MathsUtils.java @@ -354,6 +354,9 @@ public class MathsUtils { if (k <= 0) { throw new IllegalArgumentException("k (" + k + ") must be > 0"); } + if (Double.isInfinite(x) && (x > 0)) { + return 1.0; + } // Old approach: (not numerically stable): // return lowerIncompleteGammaFunctionOfArgsOn2(k,x) / // gammaOfArgOn2Plus1(k-2); // denominator is Gamma(k/2)