final class oadd.org.apache.commons.math.distribution.SaddlePointExpansion extends java.lang.Object
{
private static final double HALF_LOG_2_PI;
private static final double[] EXACT_STIRLING_ERRORS;
private void <init>()
{
oadd.org.apache.commons.math.distribution.SaddlePointExpansion v;
v := @this: oadd.org.apache.commons.math.distribution.SaddlePointExpansion;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static double getStirlingError(double)
{
double[] v;
byte v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: double;
v = v cmpg 15.0;
if v >= 0 goto label;
v = 2.0 * v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double floor(double)>(v);
v = v cmpl v;
if v != 0 goto label;
v = <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double[] EXACT_STIRLING_ERRORS>;
v = v[v];
goto label;
label:
v = v + 1.0;
v = staticinvoke <oadd.org.apache.commons.math.special.Gamma: double logGamma(double)>(v);
v = v + 0.5;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = v * v;
v = v - v;
v = v + v;
v = <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double HALF_LOG_2_PI>;
v = v - v;
goto label;
label:
v = v * v;
v = 8.417508417508417E-4 / v;
v = 5.952380952380953E-4 - v;
v = v / v;
v = 7.936507936507937E-4 - v;
v = v / v;
v = 0.002777777777777778 - v;
v = v / v;
v = 0.08333333333333333 - v;
v = v / v;
label:
return v;
}
static double getDeviancePart(double, double)
{
byte v, v;
int v, v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: double;
v := @parameter: double;
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double abs(double)>(v);
v = v + v;
v = 0.1 * v;
v = v cmpg v;
if v >= 0 goto label;
v = v - v;
v = v + v;
v = v / v;
v = v * v;
v = #NaN;
v = 2.0 * v;
v = v * v;
v = v * v;
v = 1;
label:
v = v cmpl v;
if v == 0 goto label;
v = v;
v = v * v;
v = v * 2;
v = v + 1;
v = v / v;
v = v + v;
v = v + 1;
goto label;
label:
v = v;
goto label;
label:
v = v / v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = v * v;
v = v + v;
v = v - v;
label:
return v;
}
static double logBinomialProbability(int, int, double, double)
{
byte v, v;
int v, v, v, v, v;
double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: double;
v := @parameter: double;
if v != 0 goto label;
v = v cmpg 0.1;
if v >= 0 goto label;
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getDeviancePart(double,double)>(v, v);
v = neg v;
v = v * v;
v = v - v;
goto label;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = v * v;
goto label;
label:
if v != v goto label;
v = v cmpg 0.1;
if v >= 0 goto label;
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getDeviancePart(double,double)>(v, v);
v = neg v;
v = v * v;
v = v - v;
goto label;
label:
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = v * v;
goto label;
label:
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getStirlingError(double)>(v);
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getStirlingError(double)>(v);
v = v - v;
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getStirlingError(double)>(v);
v = v - v;
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getDeviancePart(double,double)>(v, v);
v = v - v;
v = v - v;
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double getDeviancePart(double,double)>(v, v);
v = v - v;
v = 6.283185307179586 * v;
v = v - v;
v = v * v;
v = v / v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = -0.5 * v;
v = v + v;
label:
return v;
}
static void <clinit>()
{
double[] v;
double v, v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(6.283185307179586);
v = 0.5 * v;
<oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double HALF_LOG_2_PI> = v;
v = newarray (double)[31];
v[0] = 0.0;
v[1] = 0.15342640972002736;
v[2] = 0.08106146679532726;
v[3] = 0.05481412105191765;
v[4] = 0.0413406959554093;
v[5] = 0.03316287351993629;
v[6] = 0.02767792568499834;
v[7] = 0.023746163656297496;
v[8] = 0.020790672103765093;
v[9] = 0.018488450532673187;
v[10] = 0.016644691189821193;
v[11] = 0.015134973221917378;
v[12] = 0.013876128823070748;
v[13] = 0.012810465242920227;
v[14] = 0.01189670994589177;
v[15] = 0.011104559758206917;
v[16] = 0.010411265261972096;
v[17] = 0.009799416126158804;
v[18] = 0.009255462182712733;
v[19] = 0.008768700134139386;
v[20] = 0.00833056343336287;
v[21] = 0.00793411456431402;
v[22] = 0.007573675487951841;
v[23] = 0.007244554301320383;
v[24] = 0.00694284010720953;
v[25] = 0.006665247032707682;
v[26] = 0.006408994188004207;
v[27] = 0.006171712263039458;
v[28] = 0.0059513701127588475;
v[29] = 0.0057462165130101155;
v[30] = 0.005554733551962801;
<oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double[] EXACT_STIRLING_ERRORS> = v;
return;
}
}