public final class com.google.common.math.IntMath
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.math.IntMath
super_class: java.lang.Object
{
static final int MAX_SIGNED_POWER_OF_TWO;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1073741824
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final int MAX_POWER_OF_SQRT2_UNSIGNED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1257966797
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final byte[] maxLog10ForLeadingZeros;
descriptor: [B
flags: (0x0018) ACC_STATIC, ACC_FINAL
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final int[] powersOf10;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final int[] halfPowersOf10;
descriptor: [I
flags: (0x0018) ACC_STATIC, ACC_FINAL
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final int FLOOR_SQRT_MAX_INT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 46340
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
private static final int[] factorials;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static int[] biggestBinomials;
descriptor: [I
flags: (0x0008) ACC_STATIC
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
private static volatile int[] $SWITCH_TABLE$java$math$RoundingMode;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 33
newarray 8
dup
iconst_0
1: bipush 9
bastore
dup
iconst_1
bipush 9
bastore
dup
iconst_2
bipush 9
bastore
dup
iconst_3
bipush 8
bastore
dup
iconst_4
bipush 8
bastore
dup
iconst_5
bipush 8
bastore
dup
bipush 6
bipush 7
bastore
dup
bipush 7
bipush 7
bastore
dup
bipush 8
bipush 7
bastore
dup
bipush 9
bipush 6
bastore
dup
bipush 10
bipush 6
bastore
dup
bipush 11
bipush 6
bastore
dup
bipush 12
bipush 6
bastore
dup
bipush 13
iconst_5
bastore
dup
bipush 14
iconst_5
bastore
dup
bipush 15
iconst_5
bastore
dup
bipush 16
iconst_4
bastore
dup
bipush 17
iconst_4
bastore
dup
bipush 18
iconst_4
bastore
dup
bipush 19
iconst_3
bastore
dup
bipush 20
iconst_3
bastore
dup
bipush 21
iconst_3
bastore
dup
bipush 22
iconst_3
bastore
dup
bipush 23
iconst_2
bastore
dup
bipush 24
iconst_2
bastore
dup
bipush 25
iconst_2
bastore
dup
bipush 26
iconst_1
bastore
dup
bipush 27
iconst_1
bastore
dup
bipush 28
iconst_1
bastore
2: putstatic com.google.common.math.IntMath.maxLog10ForLeadingZeros:[B
3: bipush 10
newarray 10
dup
iconst_0
4: iconst_1
iastore
dup
iconst_1
bipush 10
iastore
dup
iconst_2
bipush 100
iastore
dup
iconst_3
sipush 1000
iastore
dup
iconst_4
sipush 10000
iastore
dup
iconst_5
ldc 100000
iastore
dup
bipush 6
ldc 1000000
iastore
dup
bipush 7
ldc 10000000
iastore
dup
bipush 8
ldc 100000000
iastore
dup
bipush 9
ldc 1000000000
iastore
5: putstatic com.google.common.math.IntMath.powersOf10:[I
6: bipush 10
newarray 10
dup
iconst_0
7: iconst_3
iastore
dup
iconst_1
bipush 31
iastore
dup
iconst_2
sipush 316
iastore
dup
iconst_3
sipush 3162
iastore
dup
iconst_4
sipush 31622
iastore
dup
iconst_5
ldc 316227
iastore
dup
bipush 6
ldc 3162277
iastore
dup
bipush 7
ldc 31622776
iastore
dup
bipush 8
ldc 316227766
iastore
dup
bipush 9
ldc 2147483647
iastore
8: putstatic com.google.common.math.IntMath.halfPowersOf10:[I
9: bipush 13
newarray 10
dup
iconst_0
10: iconst_1
iastore
dup
iconst_1
11: iconst_1
iastore
dup
iconst_2
12: iconst_2
iastore
dup
iconst_3
13: bipush 6
iastore
dup
iconst_4
14: bipush 24
iastore
dup
iconst_5
15: bipush 120
iastore
dup
bipush 6
16: sipush 720
iastore
dup
bipush 7
17: sipush 5040
iastore
dup
bipush 8
18: ldc 40320
iastore
dup
bipush 9
19: ldc 362880
iastore
dup
bipush 10
20: ldc 3628800
iastore
dup
bipush 11
21: ldc 39916800
iastore
dup
bipush 12
22: ldc 479001600
iastore
23: putstatic com.google.common.math.IntMath.factorials:[I
24: bipush 17
newarray 10
dup
iconst_0
25: ldc 2147483647
iastore
dup
iconst_1
26: ldc 2147483647
iastore
dup
iconst_2
27: ldc 65536
iastore
dup
iconst_3
28: sipush 2345
iastore
dup
iconst_4
29: sipush 477
iastore
dup
iconst_5
30: sipush 193
iastore
dup
bipush 6
31: bipush 110
iastore
dup
bipush 7
32: bipush 75
iastore
dup
bipush 8
33: bipush 58
iastore
dup
bipush 9
34: bipush 49
iastore
dup
bipush 10
35: bipush 43
iastore
dup
bipush 11
36: bipush 39
iastore
dup
bipush 12
37: bipush 37
iastore
dup
bipush 13
38: bipush 35
iastore
dup
bipush 14
39: bipush 34
iastore
dup
bipush 15
40: bipush 34
iastore
dup
bipush 16
41: bipush 33
iastore
42: putstatic com.google.common.math.IntMath.biggestBinomials:[I
43: return
LocalVariableTable:
Start End Slot Name Signature
public static int ceilingPowerOfTwo(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "x"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;I)I
pop
1: iload 0
ldc 1073741824
if_icmple 3
2: new java.lang.ArithmeticException
dup
new java.lang.StringBuilder
dup
ldc "ceilingPowerOfTwo("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") not representable as an int"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
iconst_1
iload 0
iconst_1
isub
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
ineg
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 x I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
x
public static int floorPowerOfTwo(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "x"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;I)I
pop
1: iload 0
invokestatic java.lang.Integer.highestOneBit:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 x I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
x
public static boolean isPowerOfTwo(int);
descriptor: (I)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iload 0
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: iload 0
iload 0
iconst_1
isub
iand
ifne 3
iconst_1
goto 4
StackMap locals:
StackMap stack: int
3: iconst_0
StackMap locals: int
StackMap stack: int int
4: iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 x I
MethodParameters:
Name Flags
x
static int lessThanBranchFree(int, int);
descriptor: (II)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
isub
iconst_m1
ixor
iconst_m1
ixor
bipush 31
iushr
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
0 1 1 y I
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
x
y
public static int log2(int, java.math.RoundingMode);
descriptor: (ILjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: ldc "x"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;I)I
pop
1: invokestatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 1
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 4
2: 3
3: 4
4: 3
5: 5
6: 5
7: 5
8: 2
default: 9
}
2: StackMap locals:
StackMap stack:
iload 0
invokestatic com.google.common.math.IntMath.isPowerOfTwo:(I)Z
invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
3: StackMap locals:
StackMap stack:
bipush 31
iload 0
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
ireturn
4: StackMap locals:
StackMap stack:
bipush 32
iload 0
iconst_1
isub
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
isub
ireturn
5: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
istore 2
start local 2 6: ldc -1257966797
iload 2
iushr
istore 3
start local 3 7: bipush 31
iload 2
isub
istore 4
start local 4 8: iload 4
iload 3
iload 0
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
iadd
ireturn
end local 4 end local 3 end local 2 9: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 x I
0 10 1 mode Ljava/math/RoundingMode;
6 9 2 leadingZeros I
7 9 3 cmp I
8 9 4 logFloor I
MethodParameters:
Name Flags
x
mode
public static int log10(int, java.math.RoundingMode);
descriptor: (ILjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc "x"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkPositive:(Ljava/lang/String;I)I
pop
1: iload 0
invokestatic com.google.common.math.IntMath.log10Floor:(I)I
istore 2
start local 2 2: getstatic com.google.common.math.IntMath.powersOf10:[I
iload 2
iaload
istore 3
start local 3 3: invokestatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 1
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 8
2: 7
3: 8
4: 7
5: 9
6: 9
7: 9
8: 4
default: 10
}
4: StackMap locals: int int
StackMap stack:
iload 0
iload 3
if_icmpne 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
7: StackMap locals:
StackMap stack:
iload 2
ireturn
8: StackMap locals:
StackMap stack:
iload 2
iload 3
iload 0
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
iadd
ireturn
9: StackMap locals:
StackMap stack:
iload 2
getstatic com.google.common.math.IntMath.halfPowersOf10:[I
iload 2
iaload
iload 0
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
iadd
ireturn
10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 x I
0 11 1 mode Ljava/math/RoundingMode;
2 11 2 logFloor I
3 11 3 floorPow I
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
private static int log10Floor(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic com.google.common.math.IntMath.maxLog10ForLeadingZeros:[B
iload 0
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
baload
istore 1
start local 1 1: iload 1
iload 0
getstatic com.google.common.math.IntMath.powersOf10:[I
iload 1
iaload
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 x I
1 2 1 y I
MethodParameters:
Name Flags
x
public static int pow(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: ldc "exponent"
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: iload 0
tableswitch { // -2 - 2
-2: 12
-1: 6
0: 2
1: 5
2: 9
default: 17
}
2: StackMap locals:
StackMap stack:
iload 1
ifne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifne 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_m1
StackMap locals:
StackMap stack: int
8: ireturn
9: StackMap locals:
StackMap stack:
iload 1
bipush 32
if_icmpge 10
iconst_1
iload 1
ishl
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: ireturn
12: StackMap locals:
StackMap stack:
iload 1
bipush 32
if_icmpge 16
13: iload 1
iconst_1
iand
ifne 14
iconst_1
iload 1
ishl
goto 15
StackMap locals:
StackMap stack:
14: iconst_1
iload 1
ishl
ineg
StackMap locals:
StackMap stack: int
15: ireturn
16: StackMap locals:
StackMap stack:
iconst_0
ireturn
17: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 18: StackMap locals: int
StackMap stack:
iload 1
tableswitch { // 0 - 1
0: 19
1: 20
default: 21
}
19: StackMap locals:
StackMap stack:
iload 2
ireturn
20: StackMap locals:
StackMap stack:
iload 0
iload 2
imul
ireturn
21: StackMap locals:
StackMap stack:
iload 2
iload 1
iconst_1
iand
ifne 22
iconst_1
goto 23
StackMap locals:
StackMap stack: int
22: iload 0
StackMap locals: int int int
StackMap stack: int int
23: imul
istore 2
24: iload 0
iload 0
imul
istore 0
25: iload 1
iconst_1
ishr
istore 1
goto 18
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 b I
0 26 1 k I
18 26 2 accum I
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
b
k
public static int sqrt(int, java.math.RoundingMode);
descriptor: (ILjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: ldc "x"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: iload 0
invokestatic com.google.common.math.IntMath.sqrtFloor:(I)I
istore 2
start local 2 2: invokestatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 1
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 7
2: 6
3: 7
4: 6
5: 8
6: 8
7: 8
8: 3
default: 10
}
3: StackMap locals: int
StackMap stack:
iload 2
iload 2
imul
iload 0
if_icmpne 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
6: StackMap locals:
StackMap stack:
iload 2
ireturn
7: StackMap locals:
StackMap stack:
iload 2
iload 2
iload 2
imul
iload 0
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
iadd
ireturn
8: StackMap locals:
StackMap stack:
iload 2
iload 2
imul
iload 2
iadd
istore 3
start local 3 9: iload 2
iload 3
iload 0
invokestatic com.google.common.math.IntMath.lessThanBranchFree:(II)I
iadd
ireturn
end local 3 10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 x I
0 11 1 mode Ljava/math/RoundingMode;
2 11 2 sqrtFloor I
9 10 3 halfSquare I
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
private static int sqrtFloor(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
i2d
invokestatic java.lang.Math.sqrt:(D)D
d2i
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
MethodParameters:
Name Flags
x
public static int divide(int, int, java.math.RoundingMode);
descriptor: (IILjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: iload 1
ifne 3
2: new java.lang.ArithmeticException
dup
ldc "/ by zero"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
iload 0
iload 1
idiv
istore 3
start local 3 4: iload 0
iload 1
iload 3
imul
isub
istore 4
start local 4 5: iload 4
ifne 7
6: iload 3
ireturn
7: StackMap locals: int int
StackMap stack:
iconst_1
iload 0
iload 1
ixor
bipush 31
ishr
ior
istore 5
start local 5 8: invokestatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 2
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 14
2: 12
3: 16
4: 20
5: 24
6: 24
7: 24
8: 9
default: 39
}
9: StackMap locals: int
StackMap stack:
iload 4
ifne 10
iconst_1
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
12: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 13: goto 40
end local 6 14: StackMap locals:
StackMap stack:
iconst_1
istore 6
start local 6 15: goto 40
end local 6 16: StackMap locals:
StackMap stack:
iload 5
ifle 17
iconst_1
goto 18
StackMap locals:
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 6
start local 6 19: goto 40
end local 6 20: StackMap locals:
StackMap stack:
iload 5
ifge 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 6
start local 6 23: goto 40
end local 6 24: StackMap locals:
StackMap stack:
iload 4
invokestatic java.lang.Math.abs:(I)I
istore 7
start local 7 25: iload 7
iload 1
invokestatic java.lang.Math.abs:(I)I
iload 7
isub
isub
istore 8
start local 8 26: iload 8
ifne 35
27: aload 2
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
if_acmpeq 32
aload 2
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
if_acmpne 28
iconst_1
goto 29
StackMap locals: int int java.math.RoundingMode int int int top int int
StackMap stack:
28: iconst_0
StackMap locals:
StackMap stack: int
29: iload 3
iconst_1
iand
ifeq 30
iconst_1
goto 31
StackMap locals:
StackMap stack: int
30: iconst_0
StackMap locals: int int java.math.RoundingMode int int int top int int
StackMap stack: int int
31: iand
ifne 32
iconst_0
goto 33
StackMap locals:
StackMap stack:
32: iconst_1
StackMap locals:
StackMap stack: int
33: istore 6
start local 6 34: goto 40
end local 6 35: StackMap locals:
StackMap stack:
iload 8
ifle 36
iconst_1
goto 37
StackMap locals:
StackMap stack:
36: iconst_0
StackMap locals:
StackMap stack: int
37: istore 6
start local 6 38: goto 40
end local 8 end local 7 end local 6 39: StackMap locals: int int java.math.RoundingMode int int int
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
start local 6 40: StackMap locals: int
StackMap stack:
iload 6
ifeq 41
iload 3
iload 5
iadd
goto 42
StackMap locals:
StackMap stack:
41: iload 3
StackMap locals:
StackMap stack: int
42: ireturn
end local 6 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 43 0 p I
0 43 1 q I
0 43 2 mode Ljava/math/RoundingMode;
4 43 3 div I
5 43 4 rem I
8 43 5 signum I
13 14 6 increment Z
15 16 6 increment Z
19 20 6 increment Z
23 24 6 increment Z
34 35 6 increment Z
38 39 6 increment Z
40 43 6 increment Z
25 39 7 absRem I
26 39 8 cmpRemToHalfDivisor I
MethodParameters:
Name Flags
p
q
mode
public static int mod(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifgt 2
1: new java.lang.ArithmeticException
dup
new java.lang.StringBuilder
dup
ldc "Modulus "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " must be > 0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
iload 1
irem
istore 2
start local 2 3: iload 2
iflt 4
iload 2
goto 5
StackMap locals: int
StackMap stack:
4: iload 2
iload 1
iadd
StackMap locals:
StackMap stack: int
5: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 x I
0 6 1 m I
3 6 2 result I
MethodParameters:
Name Flags
x
m
public static int gcd(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: ldc "a"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: ldc "b"
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
2: iload 0
ifne 4
3: iload 1
ireturn
4: StackMap locals:
StackMap stack:
iload 1
ifne 6
5: iload 0
ireturn
6: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
istore 2
start local 2 7: iload 0
iload 2
ishr
istore 0
8: iload 1
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
istore 3
start local 3 9: iload 1
iload 3
ishr
istore 1
10: goto 16
11: StackMap locals: int int
StackMap stack:
iload 0
iload 1
isub
istore 4
start local 4 12: iload 4
iload 4
bipush 31
ishr
iand
istore 5
start local 5 13: iload 4
iload 5
isub
iload 5
isub
istore 0
14: iload 1
iload 5
iadd
istore 1
15: iload 0
iload 0
invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
ishr
istore 0
end local 5 end local 4 16: StackMap locals:
StackMap stack:
iload 0
iload 1
if_icmpne 11
17: iload 0
iload 2
iload 3
invokestatic java.lang.Math.min:(II)I
ishl
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 a I
0 18 1 b I
7 18 2 aTwos I
9 18 3 bTwos I
12 16 4 delta I
13 16 5 minDeltaOrZero I
MethodParameters:
Name Flags
a
b
public static int checkedAdd(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
ladd
lstore 2
start local 2 1: lload 2
lload 2
l2i
i2l
lcmp
ifne 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "checkedAdd"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
4: lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 a I
0 5 1 b I
1 5 2 result J
MethodParameters:
Name Flags
a
b
public static int checkedSubtract(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lsub
lstore 2
start local 2 1: lload 2
lload 2
l2i
i2l
lcmp
ifne 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "checkedSubtract"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
4: lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 a I
0 5 1 b I
1 5 2 result J
MethodParameters:
Name Flags
a
b
public static int checkedMultiply(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lmul
lstore 2
start local 2 1: lload 2
lload 2
l2i
i2l
lcmp
ifne 2
iconst_1
goto 3
StackMap locals: long
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "checkedMultiply"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
4: lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 a I
0 5 1 b I
1 5 2 result J
MethodParameters:
Name Flags
a
b
public static int checkedPow(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: ldc "exponent"
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: iload 0
tableswitch { // -2 - 2
-2: 13
-1: 6
0: 2
1: 5
2: 9
default: 19
}
2: StackMap locals:
StackMap stack:
iload 1
ifne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifne 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_m1
StackMap locals:
StackMap stack: int
8: ireturn
9: StackMap locals:
StackMap stack:
iload 1
bipush 31
if_icmpge 10
iconst_1
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: ldc "checkedPow"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
12: iconst_1
iload 1
ishl
ireturn
13: StackMap locals:
StackMap stack:
iload 1
bipush 32
if_icmpge 14
iconst_1
goto 15
StackMap locals:
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: ldc "checkedPow"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
16: iload 1
iconst_1
iand
ifne 17
iconst_1
iload 1
ishl
goto 18
StackMap locals:
StackMap stack:
17: iconst_m1
iload 1
ishl
StackMap locals:
StackMap stack: int
18: ireturn
19: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 20: StackMap locals: int
StackMap stack:
iload 1
tableswitch { // 0 - 1
0: 21
1: 22
default: 23
}
21: StackMap locals:
StackMap stack:
iload 2
ireturn
22: StackMap locals:
StackMap stack:
iload 2
iload 0
invokestatic com.google.common.math.IntMath.checkedMultiply:(II)I
ireturn
23: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifeq 25
24: iload 2
iload 0
invokestatic com.google.common.math.IntMath.checkedMultiply:(II)I
istore 2
25: StackMap locals:
StackMap stack:
iload 1
iconst_1
ishr
istore 1
26: iload 1
ifle 20
27: ldc -46340
iload 0
if_icmpgt 28
iconst_1
goto 29
StackMap locals:
StackMap stack:
28: iconst_0
StackMap locals:
StackMap stack: int
29: iload 0
ldc 46340
if_icmpgt 30
iconst_1
goto 31
StackMap locals:
StackMap stack: int
30: iconst_0
StackMap locals: int int int
StackMap stack: int int
31: iand
ldc "checkedPow"
iload 0
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNoOverflow:(ZLjava/lang/String;II)V
32: iload 0
iload 0
imul
istore 0
33: goto 20
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 b I
0 34 1 k I
20 34 2 accum I
MethodParameters:
Name Flags
b
k
public static int saturatedAdd(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
ladd
invokestatic com.google.common.primitives.Ints.saturatedCast:(J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a I
0 1 1 b I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
a
b
public static int saturatedSubtract(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lsub
invokestatic com.google.common.primitives.Ints.saturatedCast:(J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a I
0 1 1 b I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
a
b
public static int saturatedMultiply(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 0
i2l
iload 1
i2l
lmul
invokestatic com.google.common.primitives.Ints.saturatedCast:(J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a I
0 1 1 b I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
a
b
public static int saturatedPow(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: ldc "exponent"
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: iload 0
tableswitch { // -2 - 2
-2: 12
-1: 6
0: 2
1: 5
2: 9
default: 17
}
2: StackMap locals:
StackMap stack:
iload 1
ifne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ireturn
5: StackMap locals:
StackMap stack:
iconst_1
ireturn
6: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifne 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_m1
StackMap locals:
StackMap stack: int
8: ireturn
9: StackMap locals:
StackMap stack:
iload 1
bipush 31
if_icmplt 11
10: ldc 2147483647
ireturn
11: StackMap locals:
StackMap stack:
iconst_1
iload 1
ishl
ireturn
12: StackMap locals:
StackMap stack:
iload 1
bipush 32
if_icmplt 14
13: ldc 2147483647
iload 1
iconst_1
iand
iadd
ireturn
14: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifne 15
iconst_1
iload 1
ishl
goto 16
StackMap locals:
StackMap stack:
15: iconst_m1
iload 1
ishl
StackMap locals:
StackMap stack: int
16: ireturn
17: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 18: ldc 2147483647
iload 0
bipush 31
iushr
iload 1
iconst_1
iand
iand
iadd
istore 3
start local 3 19: StackMap locals: int int
StackMap stack:
iload 1
tableswitch { // 0 - 1
0: 20
1: 21
default: 22
}
20: StackMap locals:
StackMap stack:
iload 2
ireturn
21: StackMap locals:
StackMap stack:
iload 2
iload 0
invokestatic com.google.common.math.IntMath.saturatedMultiply:(II)I
ireturn
22: StackMap locals:
StackMap stack:
iload 1
iconst_1
iand
ifeq 24
23: iload 2
iload 0
invokestatic com.google.common.math.IntMath.saturatedMultiply:(II)I
istore 2
24: StackMap locals:
StackMap stack:
iload 1
iconst_1
ishr
istore 1
25: iload 1
ifle 19
26: ldc -46340
iload 0
if_icmple 27
iconst_1
goto 28
StackMap locals:
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: iload 0
ldc 46340
if_icmple 29
iconst_1
goto 30
StackMap locals:
StackMap stack: int
29: iconst_0
StackMap locals: int int int int
StackMap stack: int int
30: ior
ifeq 32
31: iload 3
ireturn
32: StackMap locals:
StackMap stack:
iload 0
iload 0
imul
istore 0
33: goto 19
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 b I
0 34 1 k I
18 34 2 accum I
19 34 3 limit I
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
b
k
public static int factorial(int);
descriptor: (I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "n"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: iload 0
getstatic com.google.common.math.IntMath.factorials:[I
arraylength
if_icmpge 2
getstatic com.google.common.math.IntMath.factorials:[I
iload 0
iaload
goto 3
StackMap locals:
StackMap stack:
2: ldc 2147483647
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 n I
MethodParameters:
Name Flags
n
public static int binomial(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: ldc "n"
iload 0
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
1: ldc "k"
iload 1
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;I)I
pop
2: iload 1
iload 0
if_icmpgt 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "k (%s) > n (%s)"
iload 1
iload 0
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;II)V
5: iload 1
iload 0
iconst_1
ishr
if_icmple 7
6: iload 0
iload 1
isub
istore 1
7: StackMap locals:
StackMap stack:
iload 1
getstatic com.google.common.math.IntMath.biggestBinomials:[I
arraylength
if_icmpge 8
iload 0
getstatic com.google.common.math.IntMath.biggestBinomials:[I
iload 1
iaload
if_icmple 9
8: StackMap locals:
StackMap stack:
ldc 2147483647
ireturn
9: StackMap locals:
StackMap stack:
iload 1
tableswitch { // 0 - 1
0: 10
1: 11
default: 12
}
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
11: StackMap locals:
StackMap stack:
iload 0
ireturn
12: StackMap locals:
StackMap stack:
lconst_1
lstore 2
start local 2 13: iconst_0
istore 4
start local 4 14: goto 18
15: StackMap locals: long int
StackMap stack:
lload 2
iload 0
iload 4
isub
i2l
lmul
lstore 2
16: lload 2
iload 4
iconst_1
iadd
i2l
ldiv
lstore 2
17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
iload 1
if_icmplt 15
end local 4 19: lload 2
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 n I
0 20 1 k I
13 20 2 result J
14 19 4 i I
MethodParameters:
Name Flags
n
k
public static int mean(int, int);
descriptor: (II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
iand
iload 0
iload 1
ixor
iconst_1
ishr
iadd
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
0 1 1 y I
MethodParameters:
Name Flags
x
y
public static boolean isPrime(int);
descriptor: (I)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
i2l
invokestatic com.google.common.math.LongMath.isPrime:(J)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 n I
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
com.google.common.annotations.Beta()
MethodParameters:
Name Flags
n
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/IntMath;
static int[] $SWITCH_TABLE$java$math$RoundingMode();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.math.RoundingMode.values:()[Ljava/math/RoundingMode;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
bipush 6
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
bipush 7
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic java.math.RoundingMode.UNNECESSARY:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
bipush 8
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
invokevirtual java.math.RoundingMode.ordinal:()I
iconst_1
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
dup
putstatic com.google.common.math.IntMath.$SWITCH_TABLE$java$math$RoundingMode:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
}
SourceFile: "IntMath.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtCompatible(emulated = true)