public final class com.google.common.math.DoubleMath
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.math.DoubleMath
super_class: java.lang.Object
{
private static final double MIN_INT_AS_DOUBLE;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2.147483648E9
private static final double MAX_INT_AS_DOUBLE;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2.147483647E9
private static final double MIN_LONG_AS_DOUBLE;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -9.223372036854776E18
private static final double MAX_LONG_AS_DOUBLE_PLUS_ONE;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9.223372036854776E18
private static final double LN_2;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final int MAX_FACTORIAL;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 170
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
static final double[] everySixteenthFactorial;
descriptor: [D
flags: (0x0018) ACC_STATIC, ACC_FINAL
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=5, locals=0, args_size=0
0: ldc 2.0
invokestatic java.lang.Math.log:(D)D
putstatic com.google.common.math.DoubleMath.LN_2:D
1: bipush 11
newarray 7
dup
iconst_0
2: dconst_1
dastore
dup
iconst_1
3: ldc 2.0922789888E13
dastore
dup
iconst_2
4: ldc 2.631308369336935E35
dastore
dup
iconst_3
5: ldc 1.2413915592536073E61
dastore
dup
iconst_4
6: ldc 1.2688693218588417E89
dastore
dup
iconst_5
7: ldc 7.156945704626381E118
dastore
dup
bipush 6
8: ldc 9.916779348709496E149
dastore
dup
bipush 7
9: ldc 1.974506857221074E182
dastore
dup
bipush 8
10: ldc 3.856204823625804E215
dastore
dup
bipush 9
11: ldc 5.5502938327393044E249
dastore
dup
bipush 10
12: ldc 4.7147236359920616E284
dastore
13: putstatic com.google.common.math.DoubleMath.everySixteenthFactorial:[D
14: return
LocalVariableTable:
Start End Slot Name Signature
static double roundIntermediate(double, java.math.RoundingMode);
descriptor: (DLjava/math/RoundingMode;)D
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 2 0: dload 0
invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
ifne 2
1: new java.lang.ArithmeticException
dup
ldc "input is infinite or NaN"
invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic com.google.common.math.DoubleMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 2
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 12
2: 11
3: 8
4: 5
5: 18
6: 22
7: 17
8: 3
default: 26
}
3: StackMap locals:
StackMap stack:
dload 0
invokestatic com.google.common.math.DoubleMath.isMathematicalInteger:(D)Z
invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
4: dload 0
dreturn
5: StackMap locals:
StackMap stack:
dload 0
dconst_0
dcmpl
ifge 6
dload 0
invokestatic com.google.common.math.DoubleMath.isMathematicalInteger:(D)Z
ifeq 7
6: StackMap locals:
StackMap stack:
dload 0
dreturn
7: StackMap locals:
StackMap stack:
dload 0
d2l
lconst_1
lsub
l2d
dreturn
8: StackMap locals:
StackMap stack:
dload 0
dconst_0
dcmpg
ifle 9
dload 0
invokestatic com.google.common.math.DoubleMath.isMathematicalInteger:(D)Z
ifeq 10
9: StackMap locals:
StackMap stack:
dload 0
dreturn
10: StackMap locals:
StackMap stack:
dload 0
d2l
lconst_1
ladd
l2d
dreturn
11: StackMap locals:
StackMap stack:
dload 0
dreturn
12: StackMap locals:
StackMap stack:
dload 0
invokestatic com.google.common.math.DoubleMath.isMathematicalInteger:(D)Z
ifeq 14
13: dload 0
dreturn
14: StackMap locals:
StackMap stack:
dload 0
d2l
dload 0
dconst_0
dcmpl
ifle 15
iconst_1
goto 16
StackMap locals:
StackMap stack: long
15: iconst_m1
StackMap locals: double java.math.RoundingMode
StackMap stack: long int
16: i2l
ladd
l2d
dreturn
17: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Math.rint:(D)D
dreturn
18: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Math.rint:(D)D
dstore 3
start local 3 19: dload 0
dload 3
dsub
invokestatic java.lang.Math.abs:(D)D
ldc 0.5
dcmpl
ifne 21
20: dload 0
ldc 0.5
dload 0
invokestatic java.lang.Math.copySign:(DD)D
dadd
dreturn
21: StackMap locals: double
StackMap stack:
dload 3
dreturn
end local 3 22: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Math.rint:(D)D
dstore 3
start local 3 23: dload 0
dload 3
dsub
invokestatic java.lang.Math.abs:(D)D
ldc 0.5
dcmpl
ifne 25
24: dload 0
dreturn
25: StackMap locals: double
StackMap stack:
dload 3
dreturn
end local 3 26: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 x D
0 27 2 mode Ljava/math/RoundingMode;
19 22 3 z D
23 26 3 z D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
public static int roundToInt(double, java.math.RoundingMode);
descriptor: (DLjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 2 0: dload 0
aload 2
invokestatic com.google.common.math.DoubleMath.roundIntermediate:(DLjava/math/RoundingMode;)D
dstore 3
start local 3 1: dload 3
ldc -2.147483649E9
dcmpl
ifle 2
iconst_1
goto 3
StackMap locals: double
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: dload 3
ldc 2.147483648E9
dcmpg
ifge 4
iconst_1
goto 5
StackMap locals:
StackMap stack: int
4: iconst_0
StackMap locals: double java.math.RoundingMode double
StackMap stack: int int
5: iand
invokestatic com.google.common.math.MathPreconditions.checkInRange:(Z)V
6: dload 3
d2i
ireturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 x D
0 7 2 mode Ljava/math/RoundingMode;
1 7 3 z D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
public static long roundToLong(double, java.math.RoundingMode);
descriptor: (DLjava/math/RoundingMode;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 2 0: dload 0
aload 2
invokestatic com.google.common.math.DoubleMath.roundIntermediate:(DLjava/math/RoundingMode;)D
dstore 3
start local 3 1: ldc -9.223372036854776E18
dload 3
dsub
dconst_1
dcmpg
ifge 2
iconst_1
goto 3
StackMap locals: double
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: dload 3
ldc 9.223372036854776E18
dcmpg
ifge 4
iconst_1
goto 5
StackMap locals:
StackMap stack: int
4: iconst_0
StackMap locals: double java.math.RoundingMode double
StackMap stack: int int
5: iand
invokestatic com.google.common.math.MathPreconditions.checkInRange:(Z)V
6: dload 3
d2l
lreturn
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 x D
0 7 2 mode Ljava/math/RoundingMode;
1 7 3 z D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
public static java.math.BigInteger roundToBigInteger(double, java.math.RoundingMode);
descriptor: (DLjava/math/RoundingMode;)Ljava/math/BigInteger;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 2 0: dload 0
aload 2
invokestatic com.google.common.math.DoubleMath.roundIntermediate:(DLjava/math/RoundingMode;)D
dstore 0
1: ldc -9.223372036854776E18
dload 0
dsub
dconst_1
dcmpg
ifge 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: dload 0
ldc 9.223372036854776E18
dcmpg
ifge 4
iconst_1
goto 5
StackMap locals:
StackMap stack: int
4: iconst_0
StackMap locals: double java.math.RoundingMode
StackMap stack: int int
5: iand
ifeq 7
6: dload 0
d2l
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
areturn
7: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Math.getExponent:(D)I
istore 3
start local 3 8: dload 0
invokestatic com.google.common.math.DoubleUtils.getSignificand:(D)J
lstore 4
start local 4 9: lload 4
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
iload 3
bipush 52
isub
invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
astore 6
start local 6 10: dload 0
dconst_0
dcmpg
ifge 11
aload 6
invokevirtual java.math.BigInteger.negate:()Ljava/math/BigInteger;
goto 12
StackMap locals: int long java.math.BigInteger
StackMap stack:
11: aload 6
StackMap locals:
StackMap stack: java.math.BigInteger
12: areturn
end local 6 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 x D
0 13 2 mode Ljava/math/RoundingMode;
8 13 3 exponent I
9 13 4 significand J
10 13 6 result Ljava/math/BigInteger;
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
public static boolean isPowerOfTwo(double);
descriptor: (D)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: dload 0
dconst_0
dcmpl
ifle 4
dload 0
invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
ifeq 4
1: dload 0
invokestatic com.google.common.math.DoubleUtils.getSignificand:(D)J
lstore 2
start local 2 2: lload 2
lload 2
lconst_1
lsub
land
lconst_0
lcmp
ifne 3
iconst_1
ireturn
StackMap locals: long
StackMap stack:
3: iconst_0
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 x D
2 4 2 significand J
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
public static double log2(double);
descriptor: (D)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: dload 0
invokestatic java.lang.Math.log:(D)D
getstatic com.google.common.math.DoubleMath.LN_2:D
ddiv
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x D
MethodParameters:
Name Flags
x
public static int log2(double, java.math.RoundingMode);
descriptor: (DLjava/math/RoundingMode;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 2 0: dload 0
dconst_0
dcmpl
ifle 1
dload 0
invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "x must be positive and finite"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: dload 0
invokestatic java.lang.Math.getExponent:(D)I
istore 3
start local 3 4: dload 0
invokestatic com.google.common.math.DoubleUtils.isNormal:(D)Z
ifne 6
5: dload 0
ldc 4.503599627370496E15
dmul
aload 2
invokestatic com.google.common.math.DoubleMath.log2:(DLjava/math/RoundingMode;)I
bipush 52
isub
ireturn
6: StackMap locals: int
StackMap stack:
invokestatic com.google.common.math.DoubleMath.$SWITCH_TABLE$java$math$RoundingMode:()[I
aload 2
invokevirtual java.math.RoundingMode.ordinal:()I
iaload
tableswitch { // 1 - 8
1: 20
2: 14
3: 10
4: 8
5: 26
6: 26
7: 26
8: 7
default: 31
}
7: StackMap locals:
StackMap stack:
dload 0
invokestatic com.google.common.math.DoubleMath.isPowerOfTwo:(D)Z
invokestatic com.google.common.math.MathPreconditions.checkRoundingUnnecessary:(Z)V
8: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 9: goto 32
end local 4 10: StackMap locals:
StackMap stack:
dload 0
invokestatic com.google.common.math.DoubleMath.isPowerOfTwo:(D)Z
ifeq 11
iconst_0
goto 12
StackMap locals:
StackMap stack:
11: iconst_1
StackMap locals:
StackMap stack: int
12: istore 4
start local 4 13: goto 32
end local 4 14: StackMap locals:
StackMap stack:
iload 3
ifge 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: dload 0
invokestatic com.google.common.math.DoubleMath.isPowerOfTwo:(D)Z
ifeq 17
iconst_0
goto 18
StackMap locals:
StackMap stack: int
17: iconst_1
StackMap locals: double java.math.RoundingMode int
StackMap stack: int int
18: iand
istore 4
start local 4 19: goto 32
end local 4 20: StackMap locals:
StackMap stack:
iload 3
iflt 21
iconst_1
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: dload 0
invokestatic com.google.common.math.DoubleMath.isPowerOfTwo:(D)Z
ifeq 23
iconst_0
goto 24
StackMap locals:
StackMap stack: int
23: iconst_1
StackMap locals: double java.math.RoundingMode int
StackMap stack: int int
24: iand
istore 4
start local 4 25: goto 32
end local 4 26: StackMap locals:
StackMap stack:
dload 0
invokestatic com.google.common.math.DoubleUtils.scaleNormalize:(D)D
dstore 5
start local 5 27: dload 5
dload 5
dmul
ldc 2.0
dcmpl
ifle 28
iconst_1
goto 29
StackMap locals: double java.math.RoundingMode int top double
StackMap stack:
28: iconst_0
StackMap locals:
StackMap stack: int
29: istore 4
start local 4 30: goto 32
end local 5 end local 4 31: StackMap locals: double java.math.RoundingMode int
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
start local 4 32: StackMap locals: int
StackMap stack:
iload 4
ifeq 33
iload 3
iconst_1
iadd
goto 34
StackMap locals:
StackMap stack:
33: iload 3
StackMap locals:
StackMap stack: int
34: ireturn
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 x D
0 35 2 mode Ljava/math/RoundingMode;
4 35 3 exponent I
9 10 4 increment Z
13 14 4 increment Z
19 20 4 increment Z
25 26 4 increment Z
30 31 4 increment Z
32 35 4 increment Z
27 31 5 xScaled D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
mode
public static boolean isMathematicalInteger(double);
descriptor: (D)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: dload 0
invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
ifeq 5
1: dload 0
dconst_0
dcmpl
ifeq 4
2: bipush 52
dload 0
invokestatic com.google.common.math.DoubleUtils.getSignificand:(D)J
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
isub
dload 0
invokestatic java.lang.Math.getExponent:(D)I
3: if_icmpgt 5
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 x D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
x
public static double factorial(int);
descriptor: (I)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, 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
sipush 170
if_icmple 3
2: ldc Infinity
dreturn
3: StackMap locals:
StackMap stack:
dconst_1
dstore 1
start local 1 4: iconst_1
iload 0
bipush -16
iand
iadd
istore 3
start local 3 5: goto 8
6: StackMap locals: double int
StackMap stack:
dload 1
iload 3
i2d
dmul
dstore 1
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 0
if_icmple 6
end local 3 9: dload 1
getstatic com.google.common.math.DoubleMath.everySixteenthFactorial:[D
iload 0
iconst_4
ishr
daload
dmul
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 n I
4 10 1 accum D
5 9 3 i I
MethodParameters:
Name Flags
n
public static boolean fuzzyEquals(double, double, double);
descriptor: (DDD)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 2 start local 4 0: ldc "tolerance"
dload 4
invokestatic com.google.common.math.MathPreconditions.checkNonNegative:(Ljava/lang/String;D)D
pop2
1: dload 0
dload 2
dsub
dconst_1
invokestatic java.lang.Math.copySign:(DD)D
dload 4
dcmpg
ifle 5
2: dload 0
dload 2
dcmpl
ifeq 5
3: dload 0
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 4
dload 2
invokestatic java.lang.Double.isNaN:(D)Z
ifne 5
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 a D
0 6 2 b D
0 6 4 tolerance D
MethodParameters:
Name Flags
a
b
tolerance
public static int fuzzyCompare(double, double, double);
descriptor: (DDD)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 2 start local 4 0: dload 0
dload 2
dload 4
invokestatic com.google.common.math.DoubleMath.fuzzyEquals:(DDD)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
dload 0
dload 2
dcmpg
ifge 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
dload 0
dload 2
dcmpl
ifle 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
dload 0
invokestatic java.lang.Double.isNaN:(D)Z
dload 2
invokestatic java.lang.Double.isNaN:(D)Z
invokestatic com.google.common.primitives.Booleans.compare:(ZZ)I
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 a D
0 7 2 b D
0 7 4 tolerance D
MethodParameters:
Name Flags
a
b
tolerance
public static double mean(double[]);
descriptor: ([D)D
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
arraylength
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Cannot take mean of 0 values"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: lconst_1
lstore 1
start local 1 4: aload 0
iconst_0
daload
invokestatic com.google.common.math.DoubleMath.checkFinite:(D)D
dstore 3
start local 3 5: iconst_1
istore 5
start local 5 6: goto 11
7: StackMap locals: long double int
StackMap stack:
aload 0
iload 5
daload
invokestatic com.google.common.math.DoubleMath.checkFinite:(D)D
pop2
8: lload 1
lconst_1
ladd
lstore 1
9: dload 3
aload 0
iload 5
daload
dload 3
dsub
lload 1
l2d
ddiv
dadd
dstore 3
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
aload 0
arraylength
if_icmplt 7
end local 5 12: dload 3
dreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 values [D
4 13 1 count J
5 13 3 mean D
6 12 5 index I
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
values
public static double mean(int[]);
descriptor: ([I)D
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
arraylength
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Cannot take mean of 0 values"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: lconst_0
lstore 1
start local 1 4: iconst_0
istore 3
start local 3 5: goto 8
6: StackMap locals: long int
StackMap stack:
lload 1
aload 0
iload 3
iaload
i2l
ladd
lstore 1
7: iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 0
arraylength
if_icmplt 6
end local 3 9: lload 1
l2d
aload 0
arraylength
i2d
ddiv
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 values [I
4 10 1 sum J
5 9 3 index I
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
values
public static double mean(long[]);
descriptor: ([J)D
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=6, args_size=1
start local 0 0: aload 0
arraylength
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Cannot take mean of 0 values"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: lconst_1
lstore 1
start local 1 4: aload 0
iconst_0
laload
l2d
dstore 3
start local 3 5: iconst_1
istore 5
start local 5 6: goto 10
7: StackMap locals: long double int
StackMap stack:
lload 1
lconst_1
ladd
lstore 1
8: dload 3
aload 0
iload 5
laload
l2d
dload 3
dsub
lload 1
l2d
ddiv
dadd
dstore 3
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
aload 0
arraylength
if_icmplt 7
end local 5 11: dload 3
dreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 values [J
4 12 1 count J
5 12 3 mean D
6 11 5 index I
RuntimeVisibleAnnotations:
java.lang.Deprecated()
MethodParameters:
Name Flags
values
public static double mean(java.lang.Iterable<? extends java.lang.Number>);
descriptor: (Ljava/lang/Iterable;)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
invokestatic com.google.common.math.DoubleMath.mean:(Ljava/util/Iterator;)D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 values Ljava/lang/Iterable<+Ljava/lang/Number;>;
Signature: (Ljava/lang/Iterable<+Ljava/lang/Number;>;)D
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
values
public static double mean(java.util.Iterator<? extends java.lang.Number>);
descriptor: (Ljava/util/Iterator;)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Iterator.hasNext:()Z
ldc "Cannot take mean of 0 values"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
1: lconst_1
lstore 1
start local 1 2: aload 0
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
invokestatic com.google.common.math.DoubleMath.checkFinite:(D)D
dstore 3
start local 3 3: goto 7
4: StackMap locals: long double
StackMap stack:
aload 0
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Number
invokevirtual java.lang.Number.doubleValue:()D
invokestatic com.google.common.math.DoubleMath.checkFinite:(D)D
dstore 5
start local 5 5: lload 1
lconst_1
ladd
lstore 1
6: dload 3
dload 5
dload 3
dsub
lload 1
l2d
ddiv
dadd
dstore 3
end local 5 7: StackMap locals:
StackMap stack:
aload 0
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: dload 3
dreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 values Ljava/util/Iterator<+Ljava/lang/Number;>;
2 9 1 count J
3 9 3 mean D
5 7 5 value D
Signature: (Ljava/util/Iterator<+Ljava/lang/Number;>;)D
RuntimeVisibleAnnotations:
java.lang.Deprecated()
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
MethodParameters:
Name Flags
values
private static double checkFinite(double);
descriptor: (D)D
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: dload 0
invokestatic com.google.common.math.DoubleUtils.isFinite:(D)Z
invokestatic com.google.common.base.Preconditions.checkArgument:(Z)V
1: dload 0
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 argument D
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtIncompatible()
com.google.errorprone.annotations.CanIgnoreReturnValue()
MethodParameters:
Name Flags
argument
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/DoubleMath;
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.DoubleMath.$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.DoubleMath.$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: "DoubleMath.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.GwtCompatible(emulated = true)