abstract class com.google.common.math.LongMath$MillerRabinTester extends java.lang.Enum<com.google.common.math.LongMath$MillerRabinTester>
minor version: 0
major version: 59
flags: flags: (0x4420) ACC_SUPER, ACC_ABSTRACT, ACC_ANNOTATION
this_class: com.google.common.math.LongMath$MillerRabinTester
super_class: java.lang.Enum
{
public static final com.google.common.math.LongMath$MillerRabinTester SMALL;
descriptor: Lcom/google/common/math/LongMath$MillerRabinTester;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final com.google.common.math.LongMath$MillerRabinTester LARGE;
descriptor: Lcom/google/common/math/LongMath$MillerRabinTester;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
private static final com.google.common.math.LongMath$MillerRabinTester[] ENUM$VALUES;
descriptor: [Lcom/google/common/math/LongMath$MillerRabinTester;
flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new com.google.common.math.LongMath$MillerRabinTester$1
dup
ldc "SMALL"
iconst_0
invokespecial com.google.common.math.LongMath$MillerRabinTester$1.<init>:(Ljava/lang/String;I)V
1: putstatic com.google.common.math.LongMath$MillerRabinTester.SMALL:Lcom/google/common/math/LongMath$MillerRabinTester;
2: new com.google.common.math.LongMath$MillerRabinTester$2
dup
ldc "LARGE"
iconst_1
invokespecial com.google.common.math.LongMath$MillerRabinTester$2.<init>:(Ljava/lang/String;I)V
3: putstatic com.google.common.math.LongMath$MillerRabinTester.LARGE:Lcom/google/common/math/LongMath$MillerRabinTester;
4: iconst_2
anewarray com.google.common.math.LongMath$MillerRabinTester
dup
iconst_0
getstatic com.google.common.math.LongMath$MillerRabinTester.SMALL:Lcom/google/common/math/LongMath$MillerRabinTester;
aastore
dup
iconst_1
getstatic com.google.common.math.LongMath$MillerRabinTester.LARGE:Lcom/google/common/math/LongMath$MillerRabinTester;
aastore
putstatic com.google.common.math.LongMath$MillerRabinTester.ENUM$VALUES:[Lcom/google/common/math/LongMath$MillerRabinTester;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 0: aload 0
aload 1
iload 2
invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/LongMath$MillerRabinTester;
MethodParameters:
Name Flags
$enum$name
$enum$ordinal
static boolean test(long, long);
descriptor: (JJ)Z
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 2 0: lload 2
ldc 3037000499
lcmp
ifgt 1
getstatic com.google.common.math.LongMath$MillerRabinTester.SMALL:Lcom/google/common/math/LongMath$MillerRabinTester;
goto 2
StackMap locals:
StackMap stack:
1: getstatic com.google.common.math.LongMath$MillerRabinTester.LARGE:Lcom/google/common/math/LongMath$MillerRabinTester;
StackMap locals:
StackMap stack: com.google.common.math.LongMath$MillerRabinTester
2: lload 0
lload 2
invokevirtual com.google.common.math.LongMath$MillerRabinTester.testWitness:(JJ)Z
ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 base J
0 3 2 n J
MethodParameters:
Name Flags
base
n
abstract long mulMod(long, long, long);
descriptor: (JJJ)J
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
a
b
m
abstract long squareMod(long, long);
descriptor: (JJ)J
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
a
m
private long powMod(long, long, long);
descriptor: (JJJ)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 3 start local 5 0: lconst_1
lstore 7
start local 7 1: goto 6
2: StackMap locals: long
StackMap stack:
lload 3
lconst_1
land
lconst_0
lcmp
ifeq 4
3: aload 0
lload 7
lload 1
lload 5
invokevirtual com.google.common.math.LongMath$MillerRabinTester.mulMod:(JJJ)J
lstore 7
4: StackMap locals:
StackMap stack:
aload 0
lload 1
lload 5
invokevirtual com.google.common.math.LongMath$MillerRabinTester.squareMod:(JJ)J
lstore 1
5: lload 3
iconst_1
lshr
lstore 3
StackMap locals:
StackMap stack:
6: lload 3
lconst_0
lcmp
ifne 2
7: lload 7
lreturn
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/google/common/math/LongMath$MillerRabinTester;
0 8 1 a J
0 8 3 p J
0 8 5 m J
1 8 7 res J
MethodParameters:
Name Flags
a
p
m
private boolean testWitness(long, long);
descriptor: (JJ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=3
start local 0 start local 1 start local 3 0: lload 3
lconst_1
lsub
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
istore 5
start local 5 1: lload 3
lconst_1
lsub
iload 5
lshr
lstore 6
start local 6 2: lload 1
lload 3
lrem
lstore 1
3: lload 1
lconst_0
lcmp
ifne 5
4: iconst_1
ireturn
5: StackMap locals: int long
StackMap stack:
aload 0
lload 1
lload 6
lload 3
invokevirtual com.google.common.math.LongMath$MillerRabinTester.powMod:(JJJ)J
lstore 8
start local 8 6: lload 8
lconst_1
lcmp
ifne 8
7: iconst_1
ireturn
8: StackMap locals: long
StackMap stack:
iconst_0
istore 10
start local 10 9: goto 13
10: StackMap locals: int
StackMap stack:
iinc 10 1
iload 10
iload 5
if_icmpne 12
11: iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
lload 8
lload 3
invokevirtual com.google.common.math.LongMath$MillerRabinTester.squareMod:(JJ)J
lstore 8
13: StackMap locals:
StackMap stack:
lload 8
lload 3
lconst_1
lsub
lcmp
ifne 10
14: iconst_1
ireturn
end local 10 end local 8 end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/google/common/math/LongMath$MillerRabinTester;
0 15 1 base J
0 15 3 n J
1 15 5 r I
2 15 6 d J
6 15 8 a J
9 15 10 j I
MethodParameters:
Name Flags
base
n
public static com.google.common.math.LongMath$MillerRabinTester[] values();
descriptor: ()[Lcom/google/common/math/LongMath$MillerRabinTester;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: getstatic com.google.common.math.LongMath$MillerRabinTester.ENUM$VALUES:[Lcom/google/common/math/LongMath$MillerRabinTester;
dup
astore 0
iconst_0
aload 0
arraylength
dup
istore 1
anewarray com.google.common.math.LongMath$MillerRabinTester
dup
astore 2
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
aload 2
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.math.LongMath$MillerRabinTester valueOf(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/google/common/math/LongMath$MillerRabinTester;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: ldc Lcom/google/common/math/LongMath$MillerRabinTester;
aload 0
invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
checkcast com.google.common.math.LongMath$MillerRabinTester
areturn
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
name
}
Signature: Ljava/lang/Enum<Lcom/google/common/math/LongMath$MillerRabinTester;>;
SourceFile: "LongMath.java"
NestHost: com.google.common.math.LongMath
InnerClasses:
private abstract MillerRabinTester = com.google.common.math.LongMath$MillerRabinTester of com.google.common.math.LongMath
com.google.common.math.LongMath$MillerRabinTester$1
com.google.common.math.LongMath$MillerRabinTester$2