public class org.apache.commons.math.random.MersenneTwister extends org.apache.commons.math.random.BitsStreamGenerator implements java.io.Serializable
{
private static final long serialVersionUID;
private static final int N;
private static final int M;
private static final int[] MAG01;
private int[] mt;
private int mti;
public void <init>()
{
int[] v;
org.apache.commons.math.random.MersenneTwister v;
int v;
long v, v;
v := @this: org.apache.commons.math.random.MersenneTwister;
specialinvoke v.<org.apache.commons.math.random.BitsStreamGenerator: void <init>()>();
v = newarray (int)[624];
v.<org.apache.commons.math.random.MersenneTwister: int[] mt> = v;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = v + v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(long)>(v);
return;
}
public void <init>(int)
{
int v;
int[] v;
org.apache.commons.math.random.MersenneTwister v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: int;
specialinvoke v.<org.apache.commons.math.random.BitsStreamGenerator: void <init>()>();
v = newarray (int)[624];
v.<org.apache.commons.math.random.MersenneTwister: int[] mt> = v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(int)>(v);
return;
}
public void <init>(int[])
{
int[] v, v;
org.apache.commons.math.random.MersenneTwister v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: int[];
specialinvoke v.<org.apache.commons.math.random.BitsStreamGenerator: void <init>()>();
v = newarray (int)[624];
v.<org.apache.commons.math.random.MersenneTwister: int[] mt> = v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(int[])>(v);
return;
}
public void <init>(long)
{
long v;
int[] v;
org.apache.commons.math.random.MersenneTwister v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: long;
specialinvoke v.<org.apache.commons.math.random.BitsStreamGenerator: void <init>()>();
v = newarray (int)[624];
v.<org.apache.commons.math.random.MersenneTwister: int[] mt> = v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(long)>(v);
return;
}
public void setSeed(int)
{
long v;
int[] v, v;
org.apache.commons.math.random.MersenneTwister v;
int v, v, v, v, v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: int;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v[0] = v;
v.<org.apache.commons.math.random.MersenneTwister: int mti> = 1;
label:
v = v.<org.apache.commons.math.random.MersenneTwister: int mti>;
if v >= 624 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int mti>;
v[v] = v;
v = v.<org.apache.commons.math.random.MersenneTwister: int mti>;
v = v + 1;
v.<org.apache.commons.math.random.MersenneTwister: int mti> = v;
goto label;
label:
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void clear()>();
return;
}
public void setSeed(int[])
{
org.apache.commons.math.random.MersenneTwister v;
long 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;
int[] v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: int[];
if v != null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = v + v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(long)>(v);
return;
label:
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(int)>(19650218);
v = 1;
v = 0;
v = lengthof v;
v = staticinvoke <org.apache.commons.math.util.FastMath: int max(int,int)>(624, v);
label:
if v == 0 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[v];
v = v & 2147483647L;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[v];
if v >= 0 goto label;
v = 2147483648L;
goto label;
label:
v = 0L;
label:
v = v | v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v - 1;
v = v[v];
v = v & 2147483647L;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v - 1;
v = v[v];
if v >= 0 goto label;
v = 2147483648L;
goto label;
label:
v = 0L;
label:
v = v | v;
v = v >> 30;
v = v ^ v;
v = v * 1664525L;
v = v ^ v;
v = v[v];
v = v + v;
v = v + v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v & 4294967295L;
v[v] = v;
v = v + 1;
v = v + 1;
if v < 624 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[623];
v[0] = v;
v = 1;
label:
v = lengthof v;
if v < v goto label;
v = 0;
label:
v = v - 1;
goto label;
label:
v = 623;
label:
if v == 0 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[v];
v = v & 2147483647L;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[v];
if v >= 0 goto label;
v = 2147483648L;
goto label;
label:
v = 0L;
label:
v = v | v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v - 1;
v = v[v];
v = v & 2147483647L;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v - 1;
v = v[v];
if v >= 0 goto label;
v = 2147483648L;
goto label;
label:
v = 0L;
label:
v = v | v;
v = v >> 30;
v = v ^ v;
v = v * 1566083941L;
v = v ^ v;
v = v - v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v & 4294967295L;
v[v] = v;
v = v + 1;
if v < 624 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[623];
v[0] = v;
v = 1;
label:
v = v - 1;
goto label;
label:
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v[0] = -2147483648;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void clear()>();
return;
}
public void setSeed(long)
{
int[] v;
org.apache.commons.math.random.MersenneTwister v;
long v, v, v;
v := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: long;
v = newarray (int)[2];
v = v >>> 32;
v[0] = v;
v = v & 4294967295L;
v[1] = v;
virtualinvoke v.<org.apache.commons.math.random.MersenneTwister: void setSeed(int[])>(v);
return;
}
protected int next(int)
{
org.apache.commons.math.random.MersenneTwister v;
int[] v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int 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, 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 := @this: org.apache.commons.math.random.MersenneTwister;
v := @parameter: int;
v = v.<org.apache.commons.math.random.MersenneTwister: int mti>;
if v < 624 goto label;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[0];
v = 0;
label:
if v >= 227 goto label;
v = v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v + 1;
v = v[v];
v = v & -2147483648;
v = v & 2147483647;
v = v | v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v + 397;
v = v[v];
v = v >>> 1;
v = v ^ v;
v = <org.apache.commons.math.random.MersenneTwister: int[] MAG01>;
v = v & 1;
v = v[v];
v = v ^ v;
v[v] = v;
v = v + 1;
goto label;
label:
v = 227;
label:
if v >= 623 goto label;
v = v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v + 1;
v = v[v];
v = v & -2147483648;
v = v & 2147483647;
v = v | v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v - 227;
v = v[v];
v = v >>> 1;
v = v ^ v;
v = <org.apache.commons.math.random.MersenneTwister: int[] MAG01>;
v = v & 1;
v = v[v];
v = v ^ v;
v[v] = v;
v = v + 1;
goto label;
label:
v = v & -2147483648;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[0];
v = v & 2147483647;
v = v | v;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v[396];
v = v >>> 1;
v = v ^ v;
v = <org.apache.commons.math.random.MersenneTwister: int[] MAG01>;
v = v & 1;
v = v[v];
v = v ^ v;
v[623] = v;
v.<org.apache.commons.math.random.MersenneTwister: int mti> = 0;
label:
v = v.<org.apache.commons.math.random.MersenneTwister: int[] mt>;
v = v.<org.apache.commons.math.random.MersenneTwister: int mti>;
v = v + 1;
v.<org.apache.commons.math.random.MersenneTwister: int mti> = v;
v = v[v];
v = v >>> 11;
v = v ^ v;
v = v << 7;
v = v & -1658038656;
v = v ^ v;
v = v << 15;
v = v & -272236544;
v = v ^ v;
v = v >>> 18;
v = v ^ v;
v = 32 - v;
v = v >>> v;
return v;
}
static void <clinit>()
{
int[] v;
v = newarray (int)[2];
v[0] = 0;
v[1] = -1727483681;
<org.apache.commons.math.random.MersenneTwister: int[] MAG01> = v;
return;
}
}