public class oadd.org.apache.commons.math.distribution.HypergeometricDistribution extends oadd.org.apache.commons.math.distribution.AbstractIntegerDistribution
{
private static final long serialVersionUID;
private final int numberOfSuccesses;
private final int populationSize;
private final int sampleSize;
private double numericalVariance;
private boolean numericalVarianceIsCalculated;
public void <init>(int, int, int) throws oadd.org.apache.commons.math.exception.NotPositiveException, oadd.org.apache.commons.math.exception.NotStrictlyPositiveException, oadd.org.apache.commons.math.exception.NumberIsTooLargeException
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
oadd.org.apache.commons.math.random.Well19937c v;
int v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = new oadd.org.apache.commons.math.random.Well19937c;
specialinvoke v.<oadd.org.apache.commons.math.random.Well19937c: void <init>()>();
specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: void <init>(oadd.org.apache.commons.math.random.RandomGenerator,int,int,int)>(v, v, v, v);
return;
}
public void <init>(oadd.org.apache.commons.math.random.RandomGenerator, int, int, int) throws oadd.org.apache.commons.math.exception.NotPositiveException, oadd.org.apache.commons.math.exception.NotStrictlyPositiveException, oadd.org.apache.commons.math.exception.NumberIsTooLargeException
{
java.lang.Integer v, v, v, v, v, v, v;
int v, v, v;
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
oadd.org.apache.commons.math.exception.NumberIsTooLargeException v, v;
oadd.org.apache.commons.math.random.RandomGenerator v;
oadd.org.apache.commons.math.exception.NotStrictlyPositiveException v;
oadd.org.apache.commons.math.exception.NotPositiveException v, v;
oadd.org.apache.commons.math.exception.util.LocalizedFormats v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: oadd.org.apache.commons.math.random.RandomGenerator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<oadd.org.apache.commons.math.distribution.AbstractIntegerDistribution: void <init>(oadd.org.apache.commons.math.random.RandomGenerator)>(v);
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double numericalVariance> = #NaN;
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: boolean numericalVarianceIsCalculated> = 0;
if v > 0 goto label;
v = new oadd.org.apache.commons.math.exception.NotStrictlyPositiveException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats POPULATION_SIZE>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NotStrictlyPositiveException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number)>(v, v);
throw v;
label:
if v >= 0 goto label;
v = new oadd.org.apache.commons.math.exception.NotPositiveException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats NUMBER_OF_SUCCESSES>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NotPositiveException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number)>(v, v);
throw v;
label:
if v >= 0 goto label;
v = new oadd.org.apache.commons.math.exception.NotPositiveException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats NUMBER_OF_SAMPLES>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NotPositiveException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number)>(v, v);
throw v;
label:
if v <= v goto label;
v = new oadd.org.apache.commons.math.exception.NumberIsTooLargeException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats NUMBER_OF_SUCCESS_LARGER_THAN_POPULATION_SIZE>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NumberIsTooLargeException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,boolean)>(v, v, v, 1);
throw v;
label:
if v <= v goto label;
v = new oadd.org.apache.commons.math.exception.NumberIsTooLargeException;
v = <oadd.org.apache.commons.math.exception.util.LocalizedFormats: oadd.org.apache.commons.math.exception.util.LocalizedFormats SAMPLE_SIZE_LARGER_THAN_POPULATION_SIZE>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NumberIsTooLargeException: void <init>(oadd.org.apache.commons.math.exception.util.Localizable,java.lang.Number,java.lang.Number,boolean)>(v, v, v, 1);
throw v;
label:
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses> = v;
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize> = v;
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize> = v;
return;
}
public double cumulativeProbability(int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int[] v;
int v, v, v, v, v, v, v;
double v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int[] getDomain(int,int,int)>(v, v, v);
v = v[0];
if v >= v goto label;
v = 0.0;
goto label;
label:
v = v[1];
if v < v goto label;
v = 1.0;
goto label;
label:
v = v[0];
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double innerCumulativeProbability(int,int,int)>(v, v, 1);
label:
return v;
}
private int[] getDomain(int, int, int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int[] v;
int v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = newarray (int)[2];
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getLowerDomain(int,int,int)>(v, v, v);
v[0] = v;
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getUpperDomain(int,int)>(v, v);
v[1] = v;
return v;
}
private int getLowerDomain(int, int, int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v - v;
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: int max(int,int)>(0, v);
return v;
}
public int getNumberOfSuccesses()
{
int v;
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
return v;
}
public int getPopulationSize()
{
int v;
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
return v;
}
public int getSampleSize()
{
int v;
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
return v;
}
private int getUpperDomain(int, int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: int min(int,int)>(v, v);
return v;
}
public double probability(int)
{
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v, v, v, v, v, v, v, v;
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int[] getDomain(int,int,int)>(v, v, v);
v = v[0];
if v < v goto label;
v = v[1];
if v <= v goto label;
label:
v = 0.0;
goto label;
label:
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v / v;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = v - v;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v / v;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double logBinomialProbability(int,int,double,double)>(v, v, v, v);
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = v - v;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double logBinomialProbability(int,int,double,double)>(v, v, v, v);
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = staticinvoke <oadd.org.apache.commons.math.distribution.SaddlePointExpansion: double logBinomialProbability(int,int,double,double)>(v, v, v, v);
v = v + v;
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double exp(double)>(v);
label:
return v;
}
public double upperCumulativeProbability(int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int[] v;
int v, v, v, v, v, v, v, v;
double v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int populationSize>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int numberOfSuccesses>;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int sampleSize>;
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int[] getDomain(int,int,int)>(v, v, v);
v = v[0];
if v > v goto label;
v = 1.0;
goto label;
label:
v = v[1];
if v <= v goto label;
v = 0.0;
goto label;
label:
v = v[1];
v = (int) -1;
v = specialinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double innerCumulativeProbability(int,int,int)>(v, v, v);
label:
return v;
}
private double innerCumulativeProbability(int, int, int)
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v;
double v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double probability(int)>(v);
label:
if v == v goto label;
v = v + v;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double probability(int)>(v);
v = v + v;
goto label;
label:
return v;
}
public double getNumericalMean()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v, v;
double v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getSampleSize()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getNumberOfSuccesses()>();
v = v * v;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getPopulationSize()>();
v = v / v;
return v;
}
public double getNumericalVariance()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
boolean v;
double v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: boolean numericalVarianceIsCalculated>;
if v != 0 goto label;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double calculateNumericalVariance()>();
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double numericalVariance> = v;
v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: boolean numericalVarianceIsCalculated> = 1;
label:
v = v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: double numericalVariance>;
return v;
}
protected double calculateNumericalVariance()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v;
double v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getPopulationSize()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getNumberOfSuccesses()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getSampleSize()>();
v = v * v;
v = v - v;
v = v * v;
v = v - v;
v = v * v;
v = v * v;
v = v - 1.0;
v = v * v;
v = v / v;
return v;
}
public int getSupportLowerBound()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getSampleSize()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getNumberOfSuccesses()>();
v = v + v;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getPopulationSize()>();
v = v - v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: int max(int,int)>(0, v);
return v;
}
public int getSupportUpperBound()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
int v, v, v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getNumberOfSuccesses()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.distribution.HypergeometricDistribution: int getSampleSize()>();
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: int min(int,int)>(v, v);
return v;
}
public boolean isSupportConnected()
{
oadd.org.apache.commons.math.distribution.HypergeometricDistribution v;
v := @this: oadd.org.apache.commons.math.distribution.HypergeometricDistribution;
return 1;
}
}