public class org.jruby.util.Random
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.util.Random
super_class: java.lang.Object
{
public static final int N;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 624
private static final int M;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 397
private static final int MATRIX_A;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1727483681
private static final int UMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
private static final int LMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private final int[] state;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int left;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final java.math.BigInteger INTPAIR_CONST;
descriptor: Ljava/math/BigInteger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double LDEXP_CONST;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc 9007199254740993
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
putstatic org.jruby.util.Random.INTPAIR_CONST:Ljava/math/BigInteger;
1: ldc 2.0
ldc -53.0
invokestatic java.lang.Math.pow:(DD)D
putstatic org.jruby.util.Random.LDEXP_CONST:D
return
LocalVariableTable:
Start End Slot Name Signature
private static int MIXBITS(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
ldc -2147483648
iand
iload 1
ldc 2147483647
iand
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 u I
0 1 1 v I
MethodParameters:
Name Flags
u
v
private static int TWIST(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
invokestatic org.jruby.util.Random.MIXBITS:(II)I
iconst_1
iushr
iload 1
iconst_1
iand
ifeq 1
ldc -1727483681
goto 2
StackMap locals:
StackMap stack: int
1: iconst_0
StackMap locals: int int
StackMap stack: int int
2: ixor
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 u I
0 3 1 v I
MethodParameters:
Name Flags
u
v
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 624
newarray 10
putfield org.jruby.util.Random.state:[I
2: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/util/Random;
public void <init>(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 624
newarray 10
putfield org.jruby.util.Random.state:[I
2: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
3: aload 0
iload 1
invokevirtual org.jruby.util.Random.initGenrand:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/Random;
0 5 1 s I
MethodParameters:
Name Flags
s
public void <init>(int[]);
descriptor: ([I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 624
newarray 10
putfield org.jruby.util.Random.state:[I
2: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
3: aload 0
aload 1
invokevirtual org.jruby.util.Random.initByArray:([I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/Random;
0 5 1 initKey [I
MethodParameters:
Name Flags
initKey
public void <init>(org.jruby.util.Random);
descriptor: (Lorg/jruby/util/Random;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 624
newarray 10
putfield org.jruby.util.Random.state:[I
2: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
3: aload 1
getfield org.jruby.util.Random.state:[I
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 0
aload 1
getfield org.jruby.util.Random.left:I
putfield org.jruby.util.Random.left:I
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/util/Random;
0 6 1 orig Lorg/jruby/util/Random;
MethodParameters:
Name Flags
orig
public void <init>(int[], int);
descriptor: ([II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
sipush 624
newarray 10
putfield org.jruby.util.Random.state:[I
2: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
3: aload 1
arraylength
aload 0
getfield org.jruby.util.Random.state:[I
arraylength
if_icmpeq 5
4: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "wrong state length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: org.jruby.util.Random int[] int
StackMap stack:
aload 1
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
iload 2
putfield org.jruby.util.Random.left:I
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/util/Random;
0 8 1 state [I
0 8 2 left I
MethodParameters:
Name Flags
state
left
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
aload 1
instanceof org.jruby.util.Random
ifne 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.util.Random
astore 2
start local 2 3: aload 0
getfield org.jruby.util.Random.left:I
aload 2
getfield org.jruby.util.Random.left:I
if_icmpne 4
aload 0
getfield org.jruby.util.Random.state:[I
aload 2
getfield org.jruby.util.Random.state:[I
invokestatic java.util.Arrays.equals:([I[I)Z
ifeq 4
iconst_1
ireturn
StackMap locals: org.jruby.util.Random
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/Random;
0 5 1 obj Ljava/lang/Object;
3 5 2 rhs Lorg/jruby/util/Random;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: sipush 629
aload 0
getfield org.jruby.util.Random.left:I
iadd
bipush 37
imul
aload 0
getfield org.jruby.util.Random.state:[I
invokestatic java.util.Arrays.hashCode:([I)I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/Random;
private void initGenrand(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
iload 1
iastore
1: iconst_1
istore 2
start local 2 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
iload 2
ldc 1812433253
aload 0
getfield org.jruby.util.Random.state:[I
iload 2
iconst_1
isub
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 2
iconst_1
isub
iaload
bipush 30
iushr
ixor
imul
iload 2
iadd
iastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
sipush 624
if_icmplt 3
end local 2 6: aload 0
iconst_1
putfield org.jruby.util.Random.left:I
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/util/Random;
0 8 1 s I
2 6 2 j I
MethodParameters:
Name Flags
s
private void initByArray(int[]);
descriptor: ([I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=2
start local 0 start local 1 0: aload 0
ldc 19650218
invokevirtual org.jruby.util.Random.initGenrand:(I)V
1: aload 1
arraylength
istore 2
start local 2 2: iconst_1
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: sipush 624
iload 2
if_icmple 5
sipush 624
goto 6
StackMap locals: int int int
StackMap stack:
5: iload 2
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: goto 19
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iconst_1
isub
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iconst_1
isub
iaload
bipush 30
iushr
ixor
ldc 1664525
imul
ixor
aload 1
iload 4
iaload
iadd
9: iload 4
iadd
10: iastore
11: iinc 3 1
12: iinc 4 1
13: iload 3
sipush 624
if_icmplt 16
14: aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
sipush 623
iaload
iastore
15: iconst_1
istore 3
16: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmplt 18
17: iconst_0
istore 4
18: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
19: iload 5
ifgt 8
20: sipush 623
istore 5
goto 27
21: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iconst_1
isub
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 3
iconst_1
isub
iaload
bipush 30
iushr
ixor
ldc 1566083941
imul
ixor
iload 3
isub
iastore
22: iinc 3 1
23: iload 3
sipush 624
if_icmplt 26
24: aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
aload 0
getfield org.jruby.util.Random.state:[I
sipush 623
iaload
iastore
25: iconst_1
istore 3
26: StackMap locals:
StackMap stack:
iinc 5 -1
StackMap locals:
StackMap stack:
27: iload 5
ifgt 21
28: aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
ldc -2147483648
iastore
29: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/jruby/util/Random;
0 30 1 initKey [I
2 30 2 len I
3 30 3 i I
4 30 4 j I
7 30 5 k I
MethodParameters:
Name Flags
initKey
private void nextState();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
sipush 624
putfield org.jruby.util.Random.left:I
2: sipush 228
istore 2
start local 2 3: goto 6
4: StackMap locals: int int
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
sipush 397
iadd
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
iconst_0
iadd
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
iconst_1
iadd
iaload
invokestatic org.jruby.util.Random.TWIST:(II)I
ixor
iastore
5: iinc 1 1
StackMap locals:
StackMap stack:
6: iinc 2 -1
iload 2
ifgt 4
end local 2 7: sipush 397
istore 2
start local 2 8: goto 11
9: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
sipush 397
iadd
sipush 624
isub
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
iconst_0
iadd
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
iconst_1
iadd
iaload
invokestatic org.jruby.util.Random.TWIST:(II)I
ixor
iastore
10: iinc 1 1
StackMap locals:
StackMap stack:
11: iinc 2 -1
iload 2
ifgt 9
end local 2 12: aload 0
getfield org.jruby.util.Random.state:[I
iload 1
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
sipush 397
iadd
sipush 624
isub
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iload 1
iconst_0
iadd
iaload
aload 0
getfield org.jruby.util.Random.state:[I
iconst_0
iaload
invokestatic org.jruby.util.Random.TWIST:(II)I
ixor
iastore
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jruby/util/Random;
1 14 1 p I
3 7 2 j I
8 12 2 j I
public int genrandInt32();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
dup
getfield org.jruby.util.Random.left:I
iconst_1
isub
dup_x1
putfield org.jruby.util.Random.left:I
ifgt 3
2: aload 0
invokevirtual org.jruby.util.Random.nextState:()V
3: StackMap locals: org.jruby.util.Random top org.jruby.util.Random
StackMap stack:
aload 0
getfield org.jruby.util.Random.state:[I
sipush 624
aload 0
getfield org.jruby.util.Random.left:I
isub
iaload
istore 1
start local 1 4: aload 2
monitorexit
5: goto 8
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
start local 1 8: StackMap locals: org.jruby.util.Random int
StackMap stack:
iload 1
iload 1
bipush 11
iushr
ixor
istore 1
9: iload 1
i2l
iload 1
bipush 7
ishl
i2l
ldc 2636928640
land
lxor
l2i
istore 1
10: iload 1
i2l
iload 1
bipush 15
ishl
i2l
ldc 4022730752
land
lxor
l2i
istore 1
11: iload 1
iload 1
bipush 18
iushr
ixor
istore 1
12: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/jruby/util/Random;
4 6 1 y I
8 13 1 y I
Exception table:
from to target type
1 5 6 any
6 7 6 any
public double genrandReal();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.Random.genrandInt32:()I
iconst_5
iushr
istore 1
start local 1 1: aload 0
invokevirtual org.jruby.util.Random.genrandInt32:()I
bipush 6
iushr
istore 2
start local 2 2: iload 1
i2d
ldc 6.7108864E7
dmul
iload 2
i2d
dadd
ldc 1.1102230246251565E-16
dmul
dreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/util/Random;
1 3 1 a I
2 3 2 b I
public double genrandReal2();
descriptor: ()D
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.util.Random.genrandInt32:()I
istore 1
start local 1 1: aload 0
invokevirtual org.jruby.util.Random.genrandInt32:()I
istore 2
start local 2 2: aload 0
iload 1
iload 2
invokevirtual org.jruby.util.Random.intPairToRealInclusive:(II)D
dreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/util/Random;
1 3 1 a I
2 3 2 b I
private double intPairToRealInclusive(int, int);
descriptor: (II)D
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
i2l
ldc 4294967295
land
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 3
start local 3 1: iload 2
i2l
ldc 4294967295
land
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
astore 4
start local 4 2: aload 3
bipush 32
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
aload 4
invokevirtual java.math.BigInteger.or:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic org.jruby.util.Random.INTPAIR_CONST:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
bipush 64
invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.doubleValue:()D
3: getstatic org.jruby.util.Random.LDEXP_CONST:D
4: dmul
dreturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/util/Random;
0 5 1 a I
0 5 2 b I
1 5 3 c Ljava/math/BigInteger;
2 5 4 d Ljava/math/BigInteger;
MethodParameters:
Name Flags
a
b
public int[] getState();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.Random.state:[I
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/Random;
public int getLeft();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.util.Random.left:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/util/Random;
}
SourceFile: "Random.java"