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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // int scale
        start local 2 // int[] indexes
         0: .line 317
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 318
            aload 2 /* indexes */
            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 /* index */
        start local 3 // int index
         3: .line 319
            iload 3 /* index */
            iload 1 /* scale */
            invokestatic com.google.common.math.Quantiles.checkIndex:(II)V
        end local 3 // int index
         4: .line 318
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 321
            aload 0 /* this */
            iload 1 /* scale */
            putfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
         7: .line 322
            aload 0 /* this */
            aload 2 /* indexes */
            putfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
         8: .line 323
            return
        end local 2 // int[] indexes
        end local 1 // int scale
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // java.util.Collection dataset
         0: .line 335
            aload 0 /* this */
            aload 1 /* dataset */
            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 // java.util.Collection dataset
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // double[] dataset
         0: .line 347
            aload 0 /* this */
            aload 1 /* dataset */
            invokevirtual double[].clone:()Ljava/lang/Object;
            checkcast double[]
            invokevirtual com.google.common.math.Quantiles$ScaleAndIndexes.computeInPlace:([D)Ljava/util/Map;
            areturn
        end local 1 // double[] dataset
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // long[] dataset
         0: .line 360
            aload 0 /* this */
            aload 1 /* dataset */
            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 // long[] dataset
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // int[] dataset
         0: .line 372
            aload 0 /* this */
            aload 1 /* dataset */
            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 // int[] dataset
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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 // com.google.common.math.Quantiles$ScaleAndIndexes this
        start local 1 // double[] dataset
         0: .line 384
            aload 1 /* dataset */
            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: .line 385
            aload 1 /* dataset */
            invokestatic com.google.common.math.Quantiles.containsNaN:([D)Z
            ifeq 11
         4: .line 386
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* nanMap */
        start local 2 // java.util.Map nanMap
         5: .line 387
            aload 0 /* this */
            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 /* index */
        start local 3 // int index
         7: .line 388
            aload 2 /* nanMap */
            iload 3 /* index */
            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 // int index
         8: .line 387
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 390
            aload 2 /* nanMap */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 2 // java.util.Map nanMap
        11: .line 398
      StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[]
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            arraylength
            newarray 10
            astore 2 /* quotients */
        start local 2 // int[] quotients
        12: .line 399
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            arraylength
            newarray 10
            astore 3 /* remainders */
        start local 3 // int[] remainders
        13: .line 401
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            arraylength
            iconst_2
            imul
            newarray 10
            astore 4 /* requiredSelections */
        start local 4 // int[] requiredSelections
        14: .line 402
            iconst_0
            istore 5 /* requiredSelectionsCount */
        start local 5 // int requiredSelectionsCount
        15: .line 403
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        16: goto 28
        17: .line 406
      StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[] int[] int[] int[] int int
      StackMap stack:
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            iload 6 /* i */
            iaload
            i2l
            aload 1 /* dataset */
            arraylength
            iconst_1
            isub
            i2l
            lmul
            lstore 7 /* numerator */
        start local 7 // long numerator
        18: .line 411
            lload 7 /* numerator */
            aload 0 /* this */
            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 /* quotient */
        start local 9 // int quotient
        19: .line 412
            lload 7 /* numerator */
            iload 9 /* quotient */
            i2l
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.scale:I
            i2l
            lmul
            lsub
            l2i
            istore 10 /* remainder */
        start local 10 // int remainder
        20: .line 413
            aload 2 /* quotients */
            iload 6 /* i */
            iload 9 /* quotient */
            iastore
        21: .line 414
            aload 3 /* remainders */
            iload 6 /* i */
            iload 10 /* remainder */
            iastore
        22: .line 415
            aload 4 /* requiredSelections */
            iload 5 /* requiredSelectionsCount */
            iload 9 /* quotient */
            iastore
        23: .line 416
            iinc 5 /* requiredSelectionsCount */ 1
        24: .line 417
            iload 10 /* remainder */
            ifeq 27
        25: .line 418
            aload 4 /* requiredSelections */
            iload 5 /* requiredSelectionsCount */
            iload 9 /* quotient */
            iconst_1
            iadd
            iastore
        26: .line 419
            iinc 5 /* requiredSelectionsCount */ 1
        end local 10 // int remainder
        end local 9 // int quotient
        end local 7 // long numerator
        27: .line 403
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 6 /* i */
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            arraylength
            if_icmplt 17
        end local 6 // int i
        29: .line 422
            aload 4 /* requiredSelections */
            iconst_0
            iload 5 /* requiredSelectionsCount */
            invokestatic java.util.Arrays.sort:([III)V
        30: .line 424
            aload 4 /* requiredSelections */
            iconst_0
            iload 5 /* requiredSelectionsCount */
            iconst_1
            isub
            aload 1 /* dataset */
            iconst_0
            aload 1 /* dataset */
            arraylength
            iconst_1
            isub
        31: .line 423
            invokestatic com.google.common.math.Quantiles.selectAllInPlace:([III[DII)V
        32: .line 425
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* ret */
        start local 6 // java.util.Map ret
        33: .line 426
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        34: goto 44
        35: .line 427
      StackMap locals: com.google.common.math.Quantiles$ScaleAndIndexes double[] int[] int[] int[] int java.util.Map int
      StackMap stack:
            aload 2 /* quotients */
            iload 7 /* i */
            iaload
            istore 8 /* quotient */
        start local 8 // int quotient
        36: .line 428
            aload 3 /* remainders */
            iload 7 /* i */
            iaload
            istore 9 /* remainder */
        start local 9 // int remainder
        37: .line 429
            iload 9 /* remainder */
            ifne 40
        38: .line 430
            aload 6 /* ret */
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            iload 7 /* i */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* dataset */
            iload 8 /* quotient */
            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: .line 431
            goto 43
        40: .line 432
      StackMap locals: int int
      StackMap stack:
            aload 6 /* ret */
        41: .line 433
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            iload 7 /* i */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* dataset */
            iload 8 /* quotient */
            daload
            aload 1 /* dataset */
            iload 8 /* quotient */
            iconst_1
            iadd
            daload
            iload 9 /* remainder */
            i2d
            aload 0 /* this */
            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: .line 432
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // int remainder
        end local 8 // int quotient
        43: .line 426
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        44: iload 7 /* i */
            aload 0 /* this */
            getfield com.google.common.math.Quantiles$ScaleAndIndexes.indexes:[I
            arraylength
            if_icmplt 35
        end local 7 // int i
        45: .line 436
            aload 6 /* ret */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 6 // java.util.Map ret
        end local 5 // int requiredSelectionsCount
        end local 4 // int[] requiredSelections
        end local 3 // int[] remainders
        end local 2 // int[] quotients
        end local 1 // double[] dataset
        end local 0 // com.google.common.math.Quantiles$ScaleAndIndexes this
      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