public final class com.google.common.math.Quantiles$ScaleAndIndexes
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.math.Quantiles$ScaleAndIndexes
super_class: java.lang.Object
{
private final int scale;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] indexes;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void <init>(int, int[]);
descriptor: (I[I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 5
StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes int int[] top int int int[]
StackMap stack:
2: aload 6
iload 4
iaload
istore 3
start local 3 3: iload 3
iload 1
invokestatic com.google.common.math.Quantiles.checkIndex:(II)V
end local 3 4: iinc 4 1
StackMap locals:
StackMap stack:
5: iload 4
iload 5
if_icmplt 2
6: aload 0
iload 1
putfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
7: aload 0
aload 2
putfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 9 1 scale I
0 9 2 indexes [I
3 4 3 index I
MethodParameters:
Name Flags
scale
indexes
public java.util.Map<java.lang.Integer, java.lang.Double> compute(java.util.Collection<? extends java.lang.Number>);
descriptor: (Ljava/util/Collection;)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.google.common.primitives.Doubles.toArray:(Ljava/util/Collection;)[D
invokevirtual com.google.common.math.Quantiles$ScaleAndIndexes.computeInPlace:([D)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 1 1 dataset Ljava/util/Collection<+Ljava/lang/Number;>;
Signature: (Ljava/util/Collection<+Ljava/lang/Number;>;)Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
MethodParameters:
Name Flags
dataset
public java.util.Map<java.lang.Integer, java.lang.Double> compute(double[]);
descriptor: ([D)Ljava/util/Map;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual double[].clone:()Ljava/lang/Object;
checkcast double[]
invokevirtual com.google.common.math.Quantiles$ScaleAndIndexes.computeInPlace:([D)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 1 1 dataset [D
Signature: ([D)Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
MethodParameters:
Name Flags
dataset
public java.util.Map<java.lang.Integer, java.lang.Double> compute(long[]);
descriptor: ([J)Ljava/util/Map;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.google.common.math.Quantiles.longsToDoubles:([J)[D
invokevirtual com.google.common.math.Quantiles$ScaleAndIndexes.computeInPlace:([D)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 1 1 dataset [J
Signature: ([J)Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
MethodParameters:
Name Flags
dataset
public java.util.Map<java.lang.Integer, java.lang.Double> compute(int[]);
descriptor: ([I)Ljava/util/Map;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic com.google.common.math.Quantiles.intsToDoubles:([I)[D
invokevirtual com.google.common.math.Quantiles$ScaleAndIndexes.computeInPlace:([D)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 1 1 dataset [I
Signature: ([I)Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
MethodParameters:
Name Flags
dataset
public java.util.Map<java.lang.Integer, java.lang.Double> computeInPlace(double[]);
descriptor: ([D)Ljava/util/Map;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=10, locals=11, args_size=2
start local 0 start local 1 0: aload 1
arraylength
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Cannot calculate quantiles of an empty dataset"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: aload 1
invokestatic com.google.common.math.Quantiles.containsNaN:([D)Z
ifeq 11
4: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 5: aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[] java.util.Map top int int int[]
StackMap stack:
6: aload 6
iload 4
iaload
istore 3
start local 3 7: aload 2
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc NaN
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 6
10: aload 2
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
end local 2 11: StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[]
StackMap stack:
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
arraylength
newarray 10
astore 2
start local 2 12: aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
arraylength
newarray 10
astore 3
start local 3 13: aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
arraylength
iconst_2
imul
newarray 10
astore 4
start local 4 14: iconst_0
istore 5
start local 5 15: iconst_0
istore 6
start local 6 16: goto 28
17: StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[] int[] int[] int[] int int
StackMap stack:
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
iload 6
iaload
i2l
aload 1
arraylength
iconst_1
isub
i2l
lmul
lstore 7
start local 7 18: lload 7
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
i2l
getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
invokestatic com.google.common.math.LongMath.divide:(JJLjava/math/RoundingMode;)J
l2i
istore 9
start local 9 19: lload 7
iload 9
i2l
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
i2l
lmul
lsub
l2i
istore 10
start local 10 20: aload 2
iload 6
iload 9
iastore
21: aload 3
iload 6
iload 10
iastore
22: aload 4
iload 5
iload 9
iastore
23: iinc 5 1
24: iload 10
ifeq 27
25: aload 4
iload 5
iload 9
iconst_1
iadd
iastore
26: iinc 5 1
end local 10 end local 9 end local 7 27: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
28: iload 6
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
arraylength
if_icmplt 17
end local 6 29: aload 4
iconst_0
iload 5
invokestatic java.util.Arrays.sort:([III)V
30: aload 4
iconst_0
iload 5
iconst_1
isub
aload 1
iconst_0
aload 1
arraylength
iconst_1
isub
31: invokestatic com.google.common.math.Quantiles.selectAllInPlace:([III[DII)V
32: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 6
start local 6 33: iconst_0
istore 7
start local 7 34: goto 44
35: StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[] int[] int[] int[] int java.util.Map int
StackMap stack:
aload 2
iload 7
iaload
istore 8
start local 8 36: aload 3
iload 7
iaload
istore 9
start local 9 37: iload 9
ifne 40
38: aload 6
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
iload 7
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
iload 8
daload
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
39: goto 43
40: StackMap locals: int int
StackMap stack:
aload 6
41: aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
iload 7
iaload
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
iload 8
daload
aload 1
iload 8
iconst_1
iadd
daload
iload 9
i2d
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
i2d
invokestatic com.google.common.math.Quantiles.interpolate:(DDDD)D
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
42: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 8 43: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
aload 0
getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
arraylength
if_icmplt 35
end local 7 45: aload 6
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
areturn
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 46 0 this Lcom/google/common/math/Quantiles$ScaleAndIndexes;
0 46 1 dataset [D
5 11 2 nanMap Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
7 8 3 index I
12 46 2 quotients [I
13 46 3 remainders [I
14 46 4 requiredSelections [I
15 46 5 requiredSelectionsCount I
16 29 6 i I
18 27 7 numerator J
19 27 9 quotient I
20 27 10 remainder I
33 46 6 ret Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
34 45 7 i I
36 43 8 quotient I
37 43 9 remainder I
Signature: ([D)Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Double;>;
MethodParameters:
Name Flags
dataset
}
SourceFile: "Quantiles.java"
NestHost: com.google.common.math.Quantiles
InnerClasses:
public final ScaleAndIndexes = com.google.common.math.Quantiles$ScaleAndIndexes of com.google.common.math.Quantiles