public abstract class oadd.org.apache.commons.math.random.BitsStreamGenerator extends java.lang.Object implements oadd.org.apache.commons.math.random.RandomGenerator, java.io.Serializable
{
private static final long serialVersionUID;
private double nextGaussian;
public void <init>()
{
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian> = #NaN;
return;
}
public abstract void setSeed(int);
public abstract void setSeed(int[]);
public abstract void setSeed(long);
protected abstract int next(int);
public boolean nextBoolean()
{
int v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
boolean v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(1);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void nextBytes(byte[])
{
byte[] v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v := @parameter: byte[];
v = 0;
v = lengthof v;
v = v - 3;
label:
if v >= v goto label;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(32);
v = v & 255;
v[v] = v;
v = v + 1;
v = v >> 8;
v = v & 255;
v[v] = v;
v = v + 2;
v = v >> 16;
v = v & 255;
v[v] = v;
v = v + 3;
v = v >> 24;
v = v & 255;
v[v] = v;
v = v + 4;
goto label;
label:
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(32);
label:
v = lengthof v;
if v >= v goto label;
v = v;
v = v + 1;
v = v & 255;
v[v] = v;
v = v >> 8;
goto label;
label:
return;
}
public double nextDouble()
{
int v, v;
long v, v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
double v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(26);
v = v << 26;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(26);
v = v | v;
v = v * 2.220446049250313E-16;
return v;
}
public float nextFloat()
{
int v;
float v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(23);
v = v * 1.1920929E-7F;
return v;
}
public double nextGaussian()
{
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
boolean v;
double v, v, v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian>;
v = staticinvoke <java.lang.Double: boolean isNaN(double)>(v);
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextDouble()>();
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextDouble()>();
v = 6.283185307179586 * v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double log(double)>(v);
v = -2.0 * v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double sqrt(double)>(v);
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double cos(double)>(v);
v = v * v;
v = staticinvoke <oadd.org.apache.commons.math.util.FastMath: double sin(double)>(v);
v = v * v;
v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian> = v;
goto label;
label:
v = v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian>;
v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian> = #NaN;
label:
return v;
}
public int nextInt()
{
int v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(32);
return v;
}
public int nextInt(int) throws java.lang.IllegalArgumentException
{
long v, v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
oadd.org.apache.commons.math.exception.NotStrictlyPositiveException v;
java.lang.Integer v;
int v, v, v, v, v, v, v, v, v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v := @parameter: int;
if v <= 0 goto label;
v = neg v;
v = v & v;
if v != v goto label;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(31);
v = v * v;
v = v >> 31;
return v;
label:
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(31);
v = v % v;
v = v - v;
v = v - 1;
v = v + v;
if v < 0 goto label;
return v;
label:
v = new oadd.org.apache.commons.math.exception.NotStrictlyPositiveException;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<oadd.org.apache.commons.math.exception.NotStrictlyPositiveException: void <init>(java.lang.Number)>(v);
throw v;
}
public long nextLong()
{
int v, v;
long v, v, v;
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(32);
v = v << 32;
v = virtualinvoke v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: int next(int)>(32);
v = v & 4294967295L;
v = v | v;
return v;
}
public void clear()
{
oadd.org.apache.commons.math.random.BitsStreamGenerator v;
v := @this: oadd.org.apache.commons.math.random.BitsStreamGenerator;
v.<oadd.org.apache.commons.math.random.BitsStreamGenerator: double nextGaussian> = #NaN;
return;
}
}