@Test public void testGammaCdf() { logger.info("GammaCdf"); double x = 9.0; double a = 10.0; double b = 2.0; double expResult = 0.017092718679951; double result = ContinuousDistributions.gammaCdf(x, a, b); assertEquals(expResult, result, Constants.DOUBLE_ACCURACY_HIGH); }
protected static double gammaCdf(double x, double a) { if(x<0) { throw new IllegalArgumentException("The x parameter must be positive."); } double GI; if (a>200) { double z=(x-a)/Math.sqrt(a); double y=gaussCdf(z); double b1=2/Math.sqrt(a); double phiz=0.39894228*Math.exp(-z*z/2); double w=y-b1*(z*z-1)*phiz/6; double b2=6/a; int zXor4=((int)z)^4; double u=3*b2*(z*z-3)+b1*b1*(zXor4-10*z*z+15); GI=w-phiz*z*u/72; } else if (x<a+1) { GI=gSer(x,a); } else { GI=gCf(x,a); } return GI; }
ContinuousDistributions { protected static double gammaCdf(double x, double a) { if(x<0) { throw new IllegalArgumentException("The x parameter must be positive."); } double GI; if (a>200) { double z=(x-a)/Math.sqrt(a); double y=gaussCdf(z); double b1=2/Math.sqrt(a); double phiz=0.39894228*Math.exp(-z*z/2); double w=y-b1*(z*z-1)*phiz/6; double b2=6/a; int zXor4=((int)z)^4; double u=3*b2*(z*z-3)+b1*b1*(zXor4-10*z*z+15); GI=w-phiz*z*u/72; } else if (x<a+1) { GI=gSer(x,a); } else { GI=gCf(x,a); } return GI; } }
ContinuousDistributions { protected static double gammaCdf(double x, double a) { if(x<0) { throw new IllegalArgumentException("The x parameter must be positive."); } double GI; if (a>200) { double z=(x-a)/Math.sqrt(a); double y=gaussCdf(z); double b1=2/Math.sqrt(a); double phiz=0.39894228*Math.exp(-z*z/2); double w=y-b1*(z*z-1)*phiz/6; double b2=6/a; int zXor4=((int)z)^4; double u=3*b2*(z*z-3)+b1*b1*(zXor4-10*z*z+15); GI=w-phiz*z*u/72; } else if (x<a+1) { GI=gSer(x,a); } else { GI=gCf(x,a); } return GI; }  }
ContinuousDistributions { protected static double gammaCdf(double x, double a) { if(x<0) { throw new IllegalArgumentException("The x parameter must be positive."); } double GI; if (a>200) { double z=(x-a)/Math.sqrt(a); double y=gaussCdf(z); double b1=2/Math.sqrt(a); double phiz=0.39894228*Math.exp(-z*z/2); double w=y-b1*(z*z-1)*phiz/6; double b2=6/a; int zXor4=((int)z)^4; double u=3*b2*(z*z-3)+b1*b1*(zXor4-10*z*z+15); GI=w-phiz*z*u/72; } else if (x<a+1) { GI=gSer(x,a); } else { GI=gCf(x,a); } return GI; }  static double chisquareCdf(double x, int df); static double gaussCdf(double z); static double gamma(double x); static double logGamma(double Z); static double studentsCdf(double x, int df); static double exponentialCdf(double x, double lamda); static double betaCdf(double x, double a, double b); static double fCdf(double x, int f1, int f2); static double gammaCdf(double x, double a, double b); static double uniformCdf(double x, double a, double b); static double kolmogorov(double z); static double gaussInverseCdf(double p); static double chisquareInverseCdf(double p, int df); static double normalQuantile(double p, double mu, double sigma); static double dirichletPdf(double[] pi, double[] ai); static double dirichletPdf(double[] pi, double a); static double[] multinomialGaussianSample(double[] mean, double[][] covariance); static double multinomialGaussianPdf(double[] mean, double[][] covariance, double[] x); }
ContinuousDistributions { protected static double gammaCdf(double x, double a) { if(x<0) { throw new IllegalArgumentException("The x parameter must be positive."); } double GI; if (a>200) { double z=(x-a)/Math.sqrt(a); double y=gaussCdf(z); double b1=2/Math.sqrt(a); double phiz=0.39894228*Math.exp(-z*z/2); double w=y-b1*(z*z-1)*phiz/6; double b2=6/a; int zXor4=((int)z)^4; double u=3*b2*(z*z-3)+b1*b1*(zXor4-10*z*z+15); GI=w-phiz*z*u/72; } else if (x<a+1) { GI=gSer(x,a); } else { GI=gCf(x,a); } return GI; }  static double chisquareCdf(double x, int df); static double gaussCdf(double z); static double gamma(double x); static double logGamma(double Z); static double studentsCdf(double x, int df); static double exponentialCdf(double x, double lamda); static double betaCdf(double x, double a, double b); static double fCdf(double x, int f1, int f2); static double gammaCdf(double x, double a, double b); static double uniformCdf(double x, double a, double b); static double kolmogorov(double z); static double gaussInverseCdf(double p); static double chisquareInverseCdf(double p, int df); static double normalQuantile(double p, double mu, double sigma); static double dirichletPdf(double[] pi, double[] ai); static double dirichletPdf(double[] pi, double a); static double[] multinomialGaussianSample(double[] mean, double[][] covariance); static double multinomialGaussianPdf(double[] mean, double[][] covariance, double[] x);  }