public final class it.unimi.dsi.fastutil.doubles.DoubleArrays
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: it.unimi.dsi.fastutil.doubles.DoubleArrays
  super_class: java.lang.Object
{
  public static final double[] EMPTY_ARRAY;
    descriptor: [D
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final double[] DEFAULT_EMPTY_ARRAY;
    descriptor: [D
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int QUICKSORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int PARALLEL_QUICKSORT_NO_FORK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  private static final int QUICKSORT_MEDIAN_OF_9;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final int MERGESORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int DIGIT_BITS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int DIGIT_MASK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  private static final int DIGITS_PER_ELEMENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int RADIXSORT_NO_REC;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private static final int PARALLEL_RADIXSORT_NO_FORK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  static final int RADIX_SORT_MIN_THRESHOLD;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2000

  protected static final it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment POISON_PILL;
    descriptor: Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  public static final it.unimi.dsi.fastutil.Hash$Strategy<double[]> HASH_STRATEGY;
    descriptor: Lit/unimi/dsi/fastutil/Hash$Strategy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Signature: Lit/unimi/dsi/fastutil/Hash$Strategy<[D>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 103
            iconst_0
            newarray 7
            putstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.EMPTY_ARRAY:[D
         1: .line 112
            iconst_0
            newarray 7
            putstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.DEFAULT_EMPTY_ARRAY:[D
         2: .line 2120
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iconst_m1
            iconst_m1
            iconst_m1
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            putstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
         3: .line 3199
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$ArrayHashStrategy
            dup
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$ArrayHashStrategy.<init>:()V
            putstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.HASH_STRATEGY:Lit/unimi/dsi/fastutil/Hash$Strategy;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // it.unimi.dsi.fastutil.doubles.DoubleArrays this
         0: .line 100
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 101
            return
        end local 0 // it.unimi.dsi.fastutil.doubles.DoubleArrays this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lit/unimi/dsi/fastutil/doubles/DoubleArrays;

  public static double[] forceCapacity(double[], int, int);
    descriptor: ([DII)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // double[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 128
            iload 1 /* length */
            newarray 7
            astore 3 /* t */
        start local 3 // double[] t
         1: .line 129
            aload 0 /* array */
            iconst_0
            aload 3 /* t */
            iconst_0
            iload 2 /* preserve */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 130
            aload 3 /* t */
            areturn
        end local 3 // double[] t
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0     array  [D
            0    3     1    length  I
            0    3     2  preserve  I
            1    3     3         t  [D
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static double[] ensureCapacity(double[], int);
    descriptor: ([DI)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // double[] array
        start local 1 // int length
         0: .line 148
            aload 0 /* array */
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureCapacity:([DII)[D
            areturn
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   array  [D
            0    1     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static double[] ensureCapacity(double[], int, int);
    descriptor: ([DII)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // double[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 166
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmple 1
            aload 0 /* array */
            iload 1 /* length */
            iload 2 /* preserve */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.forceCapacity:([DII)[D
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* array */
      StackMap locals:
      StackMap stack: double[]
         2: areturn
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0     array  [D
            0    3     1    length  I
            0    3     2  preserve  I
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static double[] grow(double[], int);
    descriptor: ([DI)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // double[] array
        start local 1 // int length
         0: .line 187
            aload 0 /* array */
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.grow:([DII)[D
            areturn
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   array  [D
            0    1     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static double[] grow(double[], int, int);
    descriptor: ([DII)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // double[] array
        start local 1 // int length
        start local 2 // int preserve
         0: .line 211
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmple 6
         1: .line 213
            aload 0 /* array */
            arraylength
            i2l
            aload 0 /* array */
            arraylength
            iconst_1
            ishr
            i2l
            ladd
            ldc 2147483639
            invokestatic java.lang.Math.min:(JJ)J
            iload 1 /* length */
            i2l
            invokestatic java.lang.Math.max:(JJ)J
            l2i
         2: .line 212
            istore 3 /* newLength */
        start local 3 // int newLength
         3: .line 214
            iload 3 /* newLength */
            newarray 7
            astore 4 /* t */
        start local 4 // double[] t
         4: .line 215
            aload 0 /* array */
            iconst_0
            aload 4 /* t */
            iconst_0
            iload 2 /* preserve */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 216
            aload 4 /* t */
            areturn
        end local 4 // double[] t
        end local 3 // int newLength
         6: .line 218
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            areturn
        end local 2 // int preserve
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0      array  [D
            0    7     1     length  I
            0    7     2   preserve  I
            3    6     3  newLength  I
            4    6     4          t  [D
    MethodParameters:
          Name  Flags
      array     final
      length    final
      preserve  final

  public static double[] trim(double[], int);
    descriptor: ([DI)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // double[] array
        start local 1 // int length
         0: .line 233
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmplt 2
         1: .line 234
            aload 0 /* array */
            areturn
         2: .line 235
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            ifne 3
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.EMPTY_ARRAY:[D
            goto 4
      StackMap locals:
      StackMap stack:
         3: iload 1 /* length */
            newarray 7
      StackMap locals:
      StackMap stack: double[]
         4: astore 2 /* t */
        start local 2 // double[] t
         5: .line 236
            aload 0 /* array */
            iconst_0
            aload 2 /* t */
            iconst_0
            iload 1 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 237
            aload 2 /* t */
            areturn
        end local 2 // double[] t
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   array  [D
            0    7     1  length  I
            5    7     2       t  [D
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static double[] setLength(double[], int);
    descriptor: ([DI)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // double[] array
        start local 1 // int length
         0: .line 255
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmpne 2
         1: .line 256
            aload 0 /* array */
            areturn
         2: .line 257
      StackMap locals:
      StackMap stack:
            iload 1 /* length */
            aload 0 /* array */
            arraylength
            if_icmpge 4
         3: .line 258
            aload 0 /* array */
            iload 1 /* length */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.trim:([DI)[D
            areturn
         4: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 1 /* length */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureCapacity:([DI)[D
            areturn
        end local 1 // int length
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0   array  [D
            0    5     1  length  I
    MethodParameters:
        Name  Flags
      array   final
      length  final

  public static double[] copy(double[], int, int);
    descriptor: ([DII)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // double[] array
        start local 1 // int offset
        start local 2 // int length
         0: .line 274
            aload 0 /* array */
            iload 1 /* offset */
            iload 2 /* length */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureOffsetLength:([DII)V
         1: .line 275
            iload 2 /* length */
            ifne 2
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.EMPTY_ARRAY:[D
            goto 3
      StackMap locals:
      StackMap stack:
         2: iload 2 /* length */
            newarray 7
      StackMap locals:
      StackMap stack: double[]
         3: astore 3 /* a */
        start local 3 // double[] a
         4: .line 276
            aload 0 /* array */
            iload 1 /* offset */
            aload 3 /* a */
            iconst_0
            iload 2 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 277
            aload 3 /* a */
            areturn
        end local 3 // double[] a
        end local 2 // int length
        end local 1 // int offset
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   array  [D
            0    6     1  offset  I
            0    6     2  length  I
            4    6     3       a  [D
    MethodParameters:
        Name  Flags
      array   final
      offset  final
      length  final

  public static double[] copy(double[]);
    descriptor: ([D)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // double[] array
         0: .line 287
            aload 0 /* array */
            invokevirtual double[].clone:()Ljava/lang/Object;
            checkcast double[]
            areturn
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  array  [D
    MethodParameters:
       Name  Flags
      array  final

  public static void fill(double[], double);
    descriptor: ([DD)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double[] array
        start local 1 // double value
         0: .line 300
            aload 0 /* array */
            arraylength
            istore 3 /* i */
        start local 3 // int i
         1: .line 301
            goto 3
         2: .line 302
      StackMap locals: int
      StackMap stack:
            aload 0 /* array */
            iload 3 /* i */
            dload 1 /* value */
            dastore
         3: .line 301
      StackMap locals:
      StackMap stack:
            iload 3 /* i */
            iinc 3 /* i */ -1
            ifne 2
         4: .line 303
            return
        end local 3 // int i
        end local 1 // double value
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  array  [D
            0    5     1  value  D
            1    5     3      i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      array  final
      value  final

  public static void fill(double[], int, int, double);
    descriptor: ([DIID)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // double[] array
        start local 1 // int from
        start local 2 // int to
        start local 3 // double value
         0: .line 320
            aload 0 /* array */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureFromTo:([DII)V
         1: .line 321
            iload 1 /* from */
            ifne 6
         2: .line 322
            goto 4
         3: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 2 /* to */
            dload 3 /* value */
            dastore
         4: .line 322
      StackMap locals:
      StackMap stack:
            iload 2 /* to */
            iinc 2 /* to */ -1
            ifne 3
         5: .line 323
            goto 11
         6: .line 325
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            istore 5 /* i */
        start local 5 // int i
         7: goto 10
         8: .line 326
      StackMap locals: int
      StackMap stack:
            aload 0 /* array */
            iload 5 /* i */
            dload 3 /* value */
            dastore
         9: .line 325
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 2 /* to */
            if_icmplt 8
        end local 5 // int i
        11: .line 327
      StackMap locals:
      StackMap stack:
            return
        end local 3 // double value
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0  array  [D
            0   12     1   from  I
            0   12     2     to  I
            0   12     3  value  D
            7   11     5      i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      array  final
      from   final
      to     
      value  final

  public static boolean equals(double[], double[]);
    descriptor: ([D[D)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // double[] a1
        start local 1 // double[] a2
         0: .line 342
            aload 0 /* a1 */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: .line 343
            iload 2 /* i */
            aload 1 /* a2 */
            arraylength
            if_icmpeq 5
         2: .line 344
            iconst_0
            ireturn
         3: .line 346
      StackMap locals: int
      StackMap stack:
            aload 0 /* a1 */
            iload 2 /* i */
            daload
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            aload 1 /* a2 */
            iload 2 /* i */
            daload
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lcmp
            ifeq 5
         4: .line 347
            iconst_0
            ireturn
         5: .line 345
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 3
         6: .line 348
            iconst_1
            ireturn
        end local 2 // int i
        end local 1 // double[] a2
        end local 0 // double[] a1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    a1  [D
            0    7     1    a2  [D
            1    7     2     i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      a1    final
      a2    final

  public static void ensureFromTo(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 370
            aload 0 /* a */
            arraylength
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.Arrays.ensureFromTo:(III)V
         1: .line 371
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void ensureOffsetLength(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int offset
        start local 2 // int length
         0: .line 391
            aload 0 /* a */
            arraylength
            iload 1 /* offset */
            iload 2 /* length */
            invokestatic it.unimi.dsi.fastutil.Arrays.ensureOffsetLength:(III)V
         1: .line 392
            return
        end local 2 // int length
        end local 1 // int offset
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0       a  [D
            0    2     1  offset  I
            0    2     2  length  I
    MethodParameters:
        Name  Flags
      a       final
      offset  final
      length  final

  public static void ensureSameLength(double[], double[]);
    descriptor: ([D[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // double[] b
         0: .line 404
            aload 0 /* a */
            arraylength
            aload 1 /* b */
            arraylength
            if_icmpeq 2
         1: .line 405
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Array size mismatch: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* a */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " != "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* b */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 406
      StackMap locals:
      StackMap stack:
            return
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [D
            0    3     1     b  [D
    MethodParameters:
      Name  Flags
      a     final
      b     final

  public static void swap(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // double[] x
        start local 1 // int a
        start local 2 // int b
         0: .line 422
            aload 0 /* x */
            iload 1 /* a */
            daload
            dstore 3 /* t */
        start local 3 // double t
         1: .line 423
            aload 0 /* x */
            iload 1 /* a */
            aload 0 /* x */
            iload 2 /* b */
            daload
            dastore
         2: .line 424
            aload 0 /* x */
            iload 2 /* b */
            dload 3 /* t */
            dastore
         3: .line 425
            return
        end local 3 // double t
        end local 2 // int b
        end local 1 // int a
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  [D
            0    4     1     a  I
            0    4     2     b  I
            1    4     3     t  D
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final

  public static void swap(double[], int, int, int);
    descriptor: ([DIII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // double[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int n
         0: .line 440
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         1: goto 4
         2: .line 441
      StackMap locals: int
      StackMap stack:
            aload 0 /* x */
            iload 1 /* a */
            iload 2 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
         3: .line 440
            iinc 4 /* i */ 1
            iinc 1 /* a */ 1
            iinc 2 /* b */ 1
      StackMap locals:
      StackMap stack:
         4: iload 4 /* i */
            iload 3 /* n */
            if_icmplt 2
        end local 4 // int i
         5: .line 442
            return
        end local 3 // int n
        end local 2 // int b
        end local 1 // int a
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [D
            0    6     1     a  I
            0    6     2     b  I
            0    6     3     n  I
            1    5     4     i  I
    MethodParameters:
      Name  Flags
      x     final
      a     
      b     
      n     final

  private static int med3(double[], int, int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // double[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int c
        start local 4 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 444
            aload 4 /* comp */
            aload 0 /* x */
            iload 1 /* a */
            daload
            aload 0 /* x */
            iload 2 /* b */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            istore 5 /* ab */
        start local 5 // int ab
         1: .line 445
            aload 4 /* comp */
            aload 0 /* x */
            iload 1 /* a */
            daload
            aload 0 /* x */
            iload 3 /* c */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            istore 6 /* ac */
        start local 6 // int ac
         2: .line 446
            aload 4 /* comp */
            aload 0 /* x */
            iload 2 /* b */
            daload
            aload 0 /* x */
            iload 3 /* c */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            istore 7 /* bc */
        start local 7 // int bc
         3: .line 447
            iload 5 /* ab */
            ifge 6
            iload 7 /* bc */
            ifge 4
            iload 2 /* b */
            goto 9
      StackMap locals: int int int
      StackMap stack:
         4: iload 6 /* ac */
            ifge 5
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         5: iload 1 /* a */
            goto 9
      StackMap locals:
      StackMap stack:
         6: iload 7 /* bc */
            ifle 7
            iload 2 /* b */
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 6 /* ac */
            ifle 8
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         8: iload 1 /* a */
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 7 // int bc
        end local 6 // int ac
        end local 5 // int ab
        end local 4 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 3 // int c
        end local 2 // int b
        end local 1 // int a
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  [D
            0   10     1     a  I
            0   10     2     b  I
            0   10     3     c  I
            0   10     4  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            1   10     5    ab  I
            2   10     6    ac  I
            3   10     7    bc  I
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final
      c     final
      comp  

  private static void selectionSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 450
            iload 1 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 14
         2: .line 451
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            istore 5 /* m */
        start local 5 // int m
         3: .line 452
            iload 4 /* i */
            iconst_1
            iadd
            istore 6 /* j */
        start local 6 // int j
         4: goto 8
         5: .line 453
      StackMap locals: int int
      StackMap stack:
            aload 3 /* comp */
            aload 0 /* a */
            iload 6 /* j */
            daload
            aload 0 /* a */
            iload 5 /* m */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            ifge 7
         6: .line 454
            iload 6 /* j */
            istore 5 /* m */
         7: .line 452
      StackMap locals:
      StackMap stack:
            iinc 6 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* j */
            iload 2 /* to */
            if_icmplt 5
        end local 6 // int j
         9: .line 455
            iload 5 /* m */
            iload 4 /* i */
            if_icmpeq 13
        10: .line 456
            aload 0 /* a */
            iload 4 /* i */
            daload
            dstore 6 /* u */
        start local 6 // double u
        11: .line 457
            aload 0 /* a */
            iload 4 /* i */
            aload 0 /* a */
            iload 5 /* m */
            daload
            dastore
        12: .line 458
            aload 0 /* a */
            iload 5 /* m */
            dload 6 /* u */
            dastore
        end local 6 // double u
        end local 5 // int m
        13: .line 450
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 4 // int i
        15: .line 461
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     a  [D
            0   16     1  from  I
            0   16     2    to  I
            0   16     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            1   15     4     i  I
            3   13     5     m  I
            4    9     6     j  I
           11   13     6     u  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  final

  private static void insertionSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 463
            iload 1 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 13
         2: .line 464
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 4 /* i */
            daload
            dstore 5 /* t */
        start local 5 // double t
         3: .line 465
            iload 4 /* i */
            istore 7 /* j */
        start local 7 // int j
         4: .line 466
            aload 0 /* a */
            iload 7 /* j */
            iconst_1
            isub
            daload
            dstore 8 /* u */
        start local 8 // double u
         5: goto 11
         6: .line 467
      StackMap locals: double int double
      StackMap stack:
            aload 0 /* a */
            iload 7 /* j */
            dload 8 /* u */
            dastore
         7: .line 468
            iload 1 /* from */
            iload 7 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 469
            iinc 7 /* j */ -1
         9: .line 470
            goto 12
        10: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iinc 7 /* j */ -1
            iload 7 /* j */
            iconst_1
            isub
            daload
            dstore 8 /* u */
      StackMap locals:
      StackMap stack:
        11: aload 3 /* comp */
            dload 5 /* t */
            dload 8 /* u */
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            iflt 6
        end local 8 // double u
        12: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 7 /* j */
            dload 5 /* t */
            dastore
        end local 7 // int j
        end local 5 // double t
        13: .line 463
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 2 /* to */
            if_icmplt 2
        end local 4 // int i
        14: .line 475
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0     a  [D
            0   15     1  from  I
            0   15     2    to  I
            0   15     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            1   14     4     i  I
            3   13     5     t  D
            4   13     7     j  I
            5   12     8     u  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  final

  public static void quickSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=4
        start local 0 // double[] x
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 501
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 503
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 504
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         3: .line 505
            return
         4: .line 508
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 509
            iload 1 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 510
            iload 2 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 511
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 512
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 513
            aload 0 /* x */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
            istore 6 /* l */
        10: .line 514
            aload 0 /* x */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
            istore 5 /* m */
        11: .line 515
            aload 0 /* x */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 517
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
            istore 5 /* m */
        13: .line 518
            aload 0 /* x */
            iload 5 /* m */
            daload
            dstore 8 /* v */
        start local 8 // double v
        14: .line 520
            iload 1 /* from */
            istore 10 /* a */
        start local 10 // int a
        15: iload 10 /* a */
            istore 11 /* b */
        start local 11 // int b
        16: iload 2 /* to */
            iconst_1
            isub
            istore 12 /* c */
        start local 12 // int c
        17: iload 12 /* c */
            istore 13 /* d */
        start local 13 // int d
        18: .line 523
            goto 22
        start local 14 // int comparison
        19: .line 524
      StackMap locals: double[] int int it.unimi.dsi.fastutil.doubles.DoubleComparator int int int int double int int int int int
      StackMap stack:
            iload 14 /* comparison */
            ifne 21
        20: .line 525
            aload 0 /* x */
            iload 10 /* a */
            iinc 10 /* a */ 1
            iload 11 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        21: .line 526
      StackMap locals:
      StackMap stack:
            iinc 11 /* b */ 1
        end local 14 // int comparison
        22: .line 523
      StackMap locals:
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmpgt 28
            aload 3 /* comp */
            aload 0 /* x */
            iload 11 /* b */
            daload
            dload 8 /* v */
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            dup
            istore 14 /* comparison */
        start local 14 // int comparison
        23: ifle 19
        end local 14 // int comparison
        24: .line 528
            goto 28
        start local 14 // int comparison
        25: .line 529
      StackMap locals: int
      StackMap stack:
            iload 14 /* comparison */
            ifne 27
        26: .line 530
            aload 0 /* x */
            iload 12 /* c */
            iload 13 /* d */
            iinc 13 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        27: .line 531
      StackMap locals:
      StackMap stack:
            iinc 12 /* c */ -1
        end local 14 // int comparison
        28: .line 528
      StackMap locals:
      StackMap stack:
            iload 12 /* c */
            iload 11 /* b */
            if_icmplt 30
            aload 3 /* comp */
            aload 0 /* x */
            iload 12 /* c */
            daload
            dload 8 /* v */
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            dup
            istore 14 /* comparison */
        start local 14 // int comparison
        29: ifge 25
        end local 14 // int comparison
        30: .line 533
      StackMap locals:
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmple 32
        31: .line 534
            goto 34
        32: .line 535
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            iload 11 /* b */
            iinc 11 /* b */ 1
            iload 12 /* c */
            iinc 12 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        33: .line 521
            goto 22
        34: .line 539
      StackMap locals:
      StackMap stack:
            iload 10 /* a */
            iload 1 /* from */
            isub
            iload 11 /* b */
            iload 10 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        start local 14 // int s
        35: .line 540
            aload 0 /* x */
            iload 1 /* from */
            iload 11 /* b */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DIII)V
        36: .line 541
            iload 13 /* d */
            iload 12 /* c */
            isub
            iload 2 /* to */
            iload 13 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        37: .line 542
            aload 0 /* x */
            iload 11 /* b */
            iload 2 /* to */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DIII)V
        38: .line 544
            iload 11 /* b */
            iload 10 /* a */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 40
        39: .line 545
            aload 0 /* x */
            iload 1 /* from */
            iload 1 /* from */
            iload 14 /* s */
            iadd
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
        40: .line 546
      StackMap locals: int
      StackMap stack:
            iload 13 /* d */
            iload 12 /* c */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 42
        41: .line 547
            aload 0 /* x */
            iload 2 /* to */
            iload 14 /* s */
            isub
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
        42: .line 548
      StackMap locals:
      StackMap stack:
            return
        end local 14 // int s
        end local 13 // int d
        end local 12 // int c
        end local 11 // int b
        end local 10 // int a
        end local 8 // double v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0           x  [D
            0   43     1        from  I
            0   43     2          to  I
            0   43     3        comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            1   43     4         len  I
            5   43     5           m  I
            6   43     6           l  I
            7   43     7           n  I
            9   12     8           s  I
           14   43     8           v  D
           15   43    10           a  I
           16   43    11           b  I
           17   43    12           c  I
           18   43    13           d  I
           19   22    14  comparison  I
           23   24    14  comparison  I
           25   28    14  comparison  I
           29   30    14  comparison  I
           35   43    14           s  I
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final
      comp  final

  public static void quickSort(double[], it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DLit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] x
        start local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 570
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 571
            return
        end local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [D
            0    2     1  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      x     final
      comp  final

  public static void parallelQuickSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // double[] x
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 661
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 662
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
            goto 5
         2: .line 664
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 665
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortComp
            dup
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortComp.<init>:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 666
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 4 // java.util.concurrent.ForkJoinPool pool
         5: .line 668
      StackMap locals:
      StackMap stack:
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [D
            0    6     1  from  I
            0    6     2    to  I
            0    6     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            3    5     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final
      comp  final

  public static void parallelQuickSort(double[], it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DLit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] x
        start local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 688
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelQuickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 689
            return
        end local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [D
            0    2     1  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      x     final
      comp  final

  private static int med3(double[], int, int, int);
    descriptor: ([DIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // double[] x
        start local 1 // int a
        start local 2 // int b
        start local 3 // int c
         0: .line 692
            aload 0 /* x */
            iload 1 /* a */
            daload
            aload 0 /* x */
            iload 2 /* b */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            istore 4 /* ab */
        start local 4 // int ab
         1: .line 693
            aload 0 /* x */
            iload 1 /* a */
            daload
            aload 0 /* x */
            iload 3 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            istore 5 /* ac */
        start local 5 // int ac
         2: .line 694
            aload 0 /* x */
            iload 2 /* b */
            daload
            aload 0 /* x */
            iload 3 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            istore 6 /* bc */
        start local 6 // int bc
         3: .line 695
            iload 4 /* ab */
            ifge 6
            iload 6 /* bc */
            ifge 4
            iload 2 /* b */
            goto 9
      StackMap locals: int int int
      StackMap stack:
         4: iload 5 /* ac */
            ifge 5
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         5: iload 1 /* a */
            goto 9
      StackMap locals:
      StackMap stack:
         6: iload 6 /* bc */
            ifle 7
            iload 2 /* b */
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 5 /* ac */
            ifle 8
            iload 3 /* c */
            goto 9
      StackMap locals:
      StackMap stack:
         8: iload 1 /* a */
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 6 // int bc
        end local 5 // int ac
        end local 4 // int ab
        end local 3 // int c
        end local 2 // int b
        end local 1 // int a
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  [D
            0   10     1     a  I
            0   10     2     b  I
            0   10     3     c  I
            1   10     4    ab  I
            2   10     5    ac  I
            3   10     6    bc  I
    MethodParameters:
      Name  Flags
      x     final
      a     final
      b     final
      c     final

  private static void selectionSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 699
            iload 1 /* from */
            istore 3 /* i */
        start local 3 // int i
         1: goto 14
         2: .line 700
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            istore 4 /* m */
        start local 4 // int m
         3: .line 701
            iload 3 /* i */
            iconst_1
            iadd
            istore 5 /* j */
        start local 5 // int j
         4: goto 8
         5: .line 702
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 5 /* j */
            daload
            aload 0 /* a */
            iload 4 /* m */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            ifge 7
         6: .line 703
            iload 5 /* j */
            istore 4 /* m */
         7: .line 701
      StackMap locals:
      StackMap stack:
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* j */
            iload 2 /* to */
            if_icmplt 5
        end local 5 // int j
         9: .line 704
            iload 4 /* m */
            iload 3 /* i */
            if_icmpeq 13
        10: .line 705
            aload 0 /* a */
            iload 3 /* i */
            daload
            dstore 5 /* u */
        start local 5 // double u
        11: .line 706
            aload 0 /* a */
            iload 3 /* i */
            aload 0 /* a */
            iload 4 /* m */
            daload
            dastore
        12: .line 707
            aload 0 /* a */
            iload 4 /* m */
            dload 5 /* u */
            dastore
        end local 5 // double u
        end local 4 // int m
        13: .line 699
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 3 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 3 // int i
        15: .line 710
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0     a  [D
            0   16     1  from  I
            0   16     2    to  I
            1   15     3     i  I
            3   13     4     m  I
            4    9     5     j  I
           11   13     5     u  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  private static void insertionSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 713
            iload 1 /* from */
            istore 3 /* i */
        start local 3 // int i
         1: goto 13
         2: .line 714
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 3 /* i */
            daload
            dstore 4 /* t */
        start local 4 // double t
         3: .line 715
            iload 3 /* i */
            istore 6 /* j */
        start local 6 // int j
         4: .line 716
            aload 0 /* a */
            iload 6 /* j */
            iconst_1
            isub
            daload
            dstore 7 /* u */
        start local 7 // double u
         5: goto 11
         6: .line 717
      StackMap locals: double int double
      StackMap stack:
            aload 0 /* a */
            iload 6 /* j */
            dload 7 /* u */
            dastore
         7: .line 718
            iload 1 /* from */
            iload 6 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 719
            iinc 6 /* j */ -1
         9: .line 720
            goto 12
        10: .line 716
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iinc 6 /* j */ -1
            iload 6 /* j */
            iconst_1
            isub
            daload
            dstore 7 /* u */
      StackMap locals:
      StackMap stack:
        11: dload 4 /* t */
            dload 7 /* u */
            invokestatic java.lang.Double.compare:(DD)I
            iflt 6
        end local 7 // double u
        12: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* j */
            dload 4 /* t */
            dastore
        end local 6 // int j
        end local 4 // double t
        13: .line 713
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
            iload 3 /* i */
            iload 2 /* to */
            if_icmplt 2
        end local 3 // int i
        14: .line 725
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0     a  [D
            0   15     1  from  I
            0   15     2    to  I
            1   14     3     i  I
            3   13     4     t  D
            4   13     6     j  I
            5   12     7     u  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void quickSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=14, args_size=3
        start local 0 // double[] x
        start local 1 // int from
        start local 2 // int to
         0: .line 749
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 3 /* len */
        start local 3 // int len
         1: .line 751
            iload 3 /* len */
            bipush 16
            if_icmpge 4
         2: .line 752
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([DII)V
         3: .line 753
            return
         4: .line 756
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 3 /* len */
            iconst_2
            idiv
            iadd
            istore 4 /* m */
        start local 4 // int m
         5: .line 757
            iload 1 /* from */
            istore 5 /* l */
        start local 5 // int l
         6: .line 758
            iload 2 /* to */
            iconst_1
            isub
            istore 6 /* n */
        start local 6 // int n
         7: .line 759
            iload 3 /* len */
            sipush 128
            if_icmple 12
         8: .line 760
            iload 3 /* len */
            bipush 8
            idiv
            istore 7 /* s */
        start local 7 // int s
         9: .line 761
            aload 0 /* x */
            iload 5 /* l */
            iload 5 /* l */
            iload 7 /* s */
            iadd
            iload 5 /* l */
            iconst_2
            iload 7 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIII)I
            istore 5 /* l */
        10: .line 762
            aload 0 /* x */
            iload 4 /* m */
            iload 7 /* s */
            isub
            iload 4 /* m */
            iload 4 /* m */
            iload 7 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIII)I
            istore 4 /* m */
        11: .line 763
            aload 0 /* x */
            iload 6 /* n */
            iconst_2
            iload 7 /* s */
            imul
            isub
            iload 6 /* n */
            iload 7 /* s */
            isub
            iload 6 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIII)I
            istore 6 /* n */
        end local 7 // int s
        12: .line 765
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            iload 5 /* l */
            iload 4 /* m */
            iload 6 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([DIII)I
            istore 4 /* m */
        13: .line 766
            aload 0 /* x */
            iload 4 /* m */
            daload
            dstore 7 /* v */
        start local 7 // double v
        14: .line 768
            iload 1 /* from */
            istore 9 /* a */
        start local 9 // int a
        15: iload 9 /* a */
            istore 10 /* b */
        start local 10 // int b
        16: iload 2 /* to */
            iconst_1
            isub
            istore 11 /* c */
        start local 11 // int c
        17: iload 11 /* c */
            istore 12 /* d */
        start local 12 // int d
        18: .line 771
            goto 22
        start local 13 // int comparison
        19: .line 772
      StackMap locals: double[] int int int int int int double int int int int int
      StackMap stack:
            iload 13 /* comparison */
            ifne 21
        20: .line 773
            aload 0 /* x */
            iload 9 /* a */
            iinc 9 /* a */ 1
            iload 10 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        21: .line 774
      StackMap locals:
      StackMap stack:
            iinc 10 /* b */ 1
        end local 13 // int comparison
        22: .line 771
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmpgt 28
            aload 0 /* x */
            iload 10 /* b */
            daload
            dload 7 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        23: ifle 19
        end local 13 // int comparison
        24: .line 776
            goto 28
        start local 13 // int comparison
        25: .line 777
      StackMap locals: int
      StackMap stack:
            iload 13 /* comparison */
            ifne 27
        26: .line 778
            aload 0 /* x */
            iload 11 /* c */
            iload 12 /* d */
            iinc 12 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        27: .line 779
      StackMap locals:
      StackMap stack:
            iinc 11 /* c */ -1
        end local 13 // int comparison
        28: .line 776
      StackMap locals:
      StackMap stack:
            iload 11 /* c */
            iload 10 /* b */
            if_icmplt 30
            aload 0 /* x */
            iload 11 /* c */
            daload
            dload 7 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 13 /* comparison */
        start local 13 // int comparison
        29: ifge 25
        end local 13 // int comparison
        30: .line 781
      StackMap locals:
      StackMap stack:
            iload 10 /* b */
            iload 11 /* c */
            if_icmple 32
        31: .line 782
            goto 34
        32: .line 783
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            iload 10 /* b */
            iinc 10 /* b */ 1
            iload 11 /* c */
            iinc 11 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DII)V
        33: .line 769
            goto 22
        34: .line 787
      StackMap locals:
      StackMap stack:
            iload 9 /* a */
            iload 1 /* from */
            isub
            iload 10 /* b */
            iload 9 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        start local 13 // int s
        35: .line 788
            aload 0 /* x */
            iload 1 /* from */
            iload 10 /* b */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DIII)V
        36: .line 789
            iload 12 /* d */
            iload 11 /* c */
            isub
            iload 2 /* to */
            iload 12 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* s */
        37: .line 790
            aload 0 /* x */
            iload 10 /* b */
            iload 2 /* to */
            iload 13 /* s */
            isub
            iload 13 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([DIII)V
        38: .line 792
            iload 10 /* b */
            iload 9 /* a */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 40
        39: .line 793
            aload 0 /* x */
            iload 1 /* from */
            iload 1 /* from */
            iload 13 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
        40: .line 794
      StackMap locals: int
      StackMap stack:
            iload 12 /* d */
            iload 11 /* c */
            isub
            dup
            istore 13 /* s */
            iconst_1
            if_icmple 42
        41: .line 795
            aload 0 /* x */
            iload 2 /* to */
            iload 13 /* s */
            isub
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
        42: .line 796
      StackMap locals:
      StackMap stack:
            return
        end local 13 // int s
        end local 12 // int d
        end local 11 // int c
        end local 10 // int b
        end local 9 // int a
        end local 7 // double v
        end local 6 // int n
        end local 5 // int l
        end local 4 // int m
        end local 3 // int len
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0           x  [D
            0   43     1        from  I
            0   43     2          to  I
            1   43     3         len  I
            5   43     4           m  I
            6   43     5           l  I
            7   43     6           n  I
            9   12     7           s  I
           14   43     7           v  D
           15   43     9           a  I
           16   43    10           b  I
           17   43    11           c  I
           18   43    12           d  I
           19   22    13  comparison  I
           23   24    13  comparison  I
           25   28    13  comparison  I
           29   30    13  comparison  I
           35   43    13           s  I
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final

  public static void quickSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] x
         0: .line 815
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
         1: .line 816
            return
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [D
    MethodParameters:
      Name  Flags
      x     final

  public static void parallelQuickSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // double[] x
        start local 1 // int from
        start local 2 // int to
         0: .line 902
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 903
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
            goto 5
         2: .line 905
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 3 /* pool */
        start local 3 // java.util.concurrent.ForkJoinPool pool
         3: .line 906
            aload 3 /* pool */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort
            dup
            aload 0 /* x */
            iload 1 /* from */
            iload 2 /* to */
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort.<init>:([DII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 907
            aload 3 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 3 // java.util.concurrent.ForkJoinPool pool
         5: .line 909
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [D
            0    6     1  from  I
            0    6     2    to  I
            3    5     3  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      from  final
      to    final

  public static void parallelQuickSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] x
         0: .line 928
            aload 0 /* x */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelQuickSort:([DII)V
         1: .line 929
            return
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  [D
    MethodParameters:
      Name  Flags
      x     final

  private static int med3Indirect(int[], double[], int, int, int);
    descriptor: ([I[DIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=14, args_size=5
        start local 0 // int[] perm
        start local 1 // double[] x
        start local 2 // int a
        start local 3 // int b
        start local 4 // int c
         0: .line 932
            aload 1 /* x */
            aload 0 /* perm */
            iload 2 /* a */
            iaload
            daload
            dstore 5 /* aa */
        start local 5 // double aa
         1: .line 933
            aload 1 /* x */
            aload 0 /* perm */
            iload 3 /* b */
            iaload
            daload
            dstore 7 /* bb */
        start local 7 // double bb
         2: .line 934
            aload 1 /* x */
            aload 0 /* perm */
            iload 4 /* c */
            iaload
            daload
            dstore 9 /* cc */
        start local 9 // double cc
         3: .line 935
            dload 5 /* aa */
            dload 7 /* bb */
            invokestatic java.lang.Double.compare:(DD)I
            istore 11 /* ab */
        start local 11 // int ab
         4: .line 936
            dload 5 /* aa */
            dload 9 /* cc */
            invokestatic java.lang.Double.compare:(DD)I
            istore 12 /* ac */
        start local 12 // int ac
         5: .line 937
            dload 7 /* bb */
            dload 9 /* cc */
            invokestatic java.lang.Double.compare:(DD)I
            istore 13 /* bc */
        start local 13 // int bc
         6: .line 938
            iload 11 /* ab */
            ifge 9
            iload 13 /* bc */
            ifge 7
            iload 3 /* b */
            goto 12
      StackMap locals: int[] double[] int int int double double double int int int
      StackMap stack:
         7: iload 12 /* ac */
            ifge 8
            iload 4 /* c */
            goto 12
      StackMap locals:
      StackMap stack:
         8: iload 2 /* a */
            goto 12
      StackMap locals:
      StackMap stack:
         9: iload 13 /* bc */
            ifle 10
            iload 3 /* b */
            goto 12
      StackMap locals:
      StackMap stack:
        10: iload 12 /* ac */
            ifle 11
            iload 4 /* c */
            goto 12
      StackMap locals:
      StackMap stack:
        11: iload 2 /* a */
      StackMap locals:
      StackMap stack: int
        12: ireturn
        end local 13 // int bc
        end local 12 // int ac
        end local 11 // int ab
        end local 9 // double cc
        end local 7 // double bb
        end local 5 // double aa
        end local 4 // int c
        end local 3 // int b
        end local 2 // int a
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  perm  [I
            0   13     1     x  [D
            0   13     2     a  I
            0   13     3     b  I
            0   13     4     c  I
            1   13     5    aa  D
            2   13     7    bb  D
            3   13     9    cc  D
            4   13    11    ab  I
            5   13    12    ac  I
            6   13    13    bc  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      a     final
      b     final
      c     final

  private static void insertionSortIndirect(int[], double[], int, int);
    descriptor: ([I[DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // int from
        start local 3 // int to
         0: .line 942
            iload 2 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 13
         2: .line 943
      StackMap locals: int
      StackMap stack:
            aload 0 /* perm */
            iload 4 /* i */
            iaload
            istore 5 /* t */
        start local 5 // int t
         3: .line 944
            iload 4 /* i */
            istore 6 /* j */
        start local 6 // int j
         4: .line 945
            aload 0 /* perm */
            iload 6 /* j */
            iconst_1
            isub
            iaload
            istore 7 /* u */
        start local 7 // int u
         5: goto 11
         6: .line 946
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 6 /* j */
            iload 7 /* u */
            iastore
         7: .line 947
            iload 2 /* from */
            iload 6 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 948
            iinc 6 /* j */ -1
         9: .line 949
            goto 12
        10: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iinc 6 /* j */ -1
            iload 6 /* j */
            iconst_1
            isub
            iaload
            istore 7 /* u */
      StackMap locals:
      StackMap stack:
        11: aload 1 /* a */
            iload 5 /* t */
            daload
            aload 1 /* a */
            iload 7 /* u */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            iflt 6
        end local 7 // int u
        12: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 6 /* j */
            iload 5 /* t */
            iastore
        end local 6 // int j
        end local 5 // int t
        13: .line 942
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 3 /* to */
            if_icmplt 2
        end local 4 // int i
        14: .line 954
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  perm  [I
            0   15     1     a  [D
            0   15     2  from  I
            0   15     3    to  I
            1   14     4     i  I
            3   13     5     t  I
            4   13     6     j  I
            5   12     7     u  I
    MethodParameters:
      Name  Flags
      perm  final
      a     final
      from  final
      to    final

  public static void quickSortIndirect(int[], double[], int, int);
    descriptor: ([I[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=4
        start local 0 // int[] perm
        start local 1 // double[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 985
            iload 3 /* to */
            iload 2 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 987
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 988
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[DII)V
         3: .line 989
            return
         4: .line 992
      StackMap locals: int
      StackMap stack:
            iload 2 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 993
            iload 2 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 994
            iload 3 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 995
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 996
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 997
            aload 0 /* perm */
            aload 1 /* x */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3Indirect:([I[DIII)I
            istore 6 /* l */
        10: .line 998
            aload 0 /* perm */
            aload 1 /* x */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3Indirect:([I[DIII)I
            istore 5 /* m */
        11: .line 999
            aload 0 /* perm */
            aload 1 /* x */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3Indirect:([I[DIII)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 1001
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            aload 1 /* x */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3Indirect:([I[DIII)I
            istore 5 /* m */
        13: .line 1002
            aload 1 /* x */
            aload 0 /* perm */
            iload 5 /* m */
            iaload
            daload
            dstore 8 /* v */
        start local 8 // double v
        14: .line 1004
            iload 2 /* from */
            istore 10 /* a */
        start local 10 // int a
        15: iload 10 /* a */
            istore 11 /* b */
        start local 11 // int b
        16: iload 3 /* to */
            iconst_1
            isub
            istore 12 /* c */
        start local 12 // int c
        17: iload 12 /* c */
            istore 13 /* d */
        start local 13 // int d
        18: .line 1007
            goto 22
        start local 14 // int comparison
        19: .line 1008
      StackMap locals: int[] double[] int int int int int int double int int int int int
      StackMap stack:
            iload 14 /* comparison */
            ifne 21
        20: .line 1009
            aload 0 /* perm */
            iload 10 /* a */
            iinc 10 /* a */ 1
            iload 11 /* b */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        21: .line 1010
      StackMap locals:
      StackMap stack:
            iinc 11 /* b */ 1
        end local 14 // int comparison
        22: .line 1007
      StackMap locals:
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmpgt 28
            aload 1 /* x */
            aload 0 /* perm */
            iload 11 /* b */
            iaload
            daload
            dload 8 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 14 /* comparison */
        start local 14 // int comparison
        23: ifle 19
        end local 14 // int comparison
        24: .line 1012
            goto 28
        start local 14 // int comparison
        25: .line 1013
      StackMap locals: int
      StackMap stack:
            iload 14 /* comparison */
            ifne 27
        26: .line 1014
            aload 0 /* perm */
            iload 12 /* c */
            iload 13 /* d */
            iinc 13 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        27: .line 1015
      StackMap locals:
      StackMap stack:
            iinc 12 /* c */ -1
        end local 14 // int comparison
        28: .line 1012
      StackMap locals:
      StackMap stack:
            iload 12 /* c */
            iload 11 /* b */
            if_icmplt 30
            aload 1 /* x */
            aload 0 /* perm */
            iload 12 /* c */
            iaload
            daload
            dload 8 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 14 /* comparison */
        start local 14 // int comparison
        29: ifge 25
        end local 14 // int comparison
        30: .line 1017
      StackMap locals:
      StackMap stack:
            iload 11 /* b */
            iload 12 /* c */
            if_icmple 32
        31: .line 1018
            goto 34
        32: .line 1019
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 11 /* b */
            iinc 11 /* b */ 1
            iload 12 /* c */
            iinc 12 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([III)V
        33: .line 1005
            goto 22
        34: .line 1023
      StackMap locals:
      StackMap stack:
            iload 10 /* a */
            iload 2 /* from */
            isub
            iload 11 /* b */
            iload 10 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        start local 14 // int s
        35: .line 1024
            aload 0 /* perm */
            iload 2 /* from */
            iload 11 /* b */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([IIII)V
        36: .line 1025
            iload 13 /* d */
            iload 12 /* c */
            isub
            iload 3 /* to */
            iload 13 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 14 /* s */
        37: .line 1026
            aload 0 /* perm */
            iload 11 /* b */
            iload 3 /* to */
            iload 14 /* s */
            isub
            iload 14 /* s */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.swap:([IIII)V
        38: .line 1028
            iload 11 /* b */
            iload 10 /* a */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 40
        39: .line 1029
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 2 /* from */
            iload 14 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSortIndirect:([I[DII)V
        40: .line 1030
      StackMap locals: int
      StackMap stack:
            iload 13 /* d */
            iload 12 /* c */
            isub
            dup
            istore 14 /* s */
            iconst_1
            if_icmple 42
        41: .line 1031
            aload 0 /* perm */
            aload 1 /* x */
            iload 3 /* to */
            iload 14 /* s */
            isub
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSortIndirect:([I[DII)V
        42: .line 1032
      StackMap locals:
      StackMap stack:
            return
        end local 14 // int s
        end local 13 // int d
        end local 12 // int c
        end local 11 // int b
        end local 10 // int a
        end local 8 // double v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   43     0        perm  [I
            0   43     1           x  [D
            0   43     2        from  I
            0   43     3          to  I
            1   43     4         len  I
            5   43     5           m  I
            6   43     6           l  I
            7   43     7           n  I
            9   12     8           s  I
           14   43     8           v  D
           15   43    10           a  I
           16   43    11           b  I
           17   43    12           c  I
           18   43    13           d  I
           19   22    14  comparison  I
           23   24    14  comparison  I
           25   28    14  comparison  I
           29   30    14  comparison  I
           35   43    14           s  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void quickSortIndirect(int[], double[]);
    descriptor: ([I[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // double[] x
         0: .line 1058
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 1 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSortIndirect:([I[DII)V
         1: .line 1059
            return
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [D
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  public static void parallelQuickSortIndirect(int[], double[], int, int);
    descriptor: ([I[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // int[] perm
        start local 1 // double[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 1155
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 1156
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSortIndirect:([I[DII)V
            goto 5
         2: .line 1158
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 1159
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortIndirect
            dup
            aload 0 /* perm */
            aload 1 /* x */
            iload 2 /* from */
            iload 3 /* to */
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortIndirect.<init>:([I[DII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 1160
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
        end local 4 // java.util.concurrent.ForkJoinPool pool
         5: .line 1162
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  perm  [I
            0    6     1     x  [D
            0    6     2  from  I
            0    6     3    to  I
            3    5     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void parallelQuickSortIndirect(int[], double[]);
    descriptor: ([I[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // double[] x
         0: .line 1188
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 1 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelQuickSortIndirect:([I[DII)V
         1: .line 1189
            return
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [D
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  public static void stabilize(int[], double[], int, int);
    descriptor: ([I[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // int[] perm
        start local 1 // double[] x
        start local 2 // int from
        start local 3 // int to
         0: .line 1221
            iload 2 /* from */
            istore 4 /* curr */
        start local 4 // int curr
         1: .line 1222
            iload 2 /* from */
            iconst_1
            iadd
            istore 5 /* i */
        start local 5 // int i
         2: goto 8
         3: .line 1223
      StackMap locals: int int
      StackMap stack:
            aload 1 /* x */
            aload 0 /* perm */
            iload 5 /* i */
            iaload
            daload
            aload 1 /* x */
            aload 0 /* perm */
            iload 4 /* curr */
            iaload
            daload
            dcmpl
            ifeq 7
         4: .line 1224
            iload 5 /* i */
            iload 4 /* curr */
            isub
            iconst_1
            if_icmple 6
         5: .line 1225
            aload 0 /* perm */
            iload 4 /* curr */
            iload 5 /* i */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.parallelQuickSort:([III)V
         6: .line 1226
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            istore 4 /* curr */
         7: .line 1222
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            iload 3 /* to */
            if_icmplt 3
        end local 5 // int i
         9: .line 1229
            iload 3 /* to */
            iload 4 /* curr */
            isub
            iconst_1
            if_icmple 11
        10: .line 1230
            aload 0 /* perm */
            iload 4 /* curr */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.ints.IntArrays.parallelQuickSort:([III)V
        11: .line 1231
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int curr
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  perm  [I
            0   12     1     x  [D
            0   12     2  from  I
            0   12     3    to  I
            1   12     4  curr  I
            2    9     5     i  I
    MethodParameters:
      Name  Flags
      perm  final
      x     final
      from  final
      to    final

  public static void stabilize(int[], double[]);
    descriptor: ([I[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // int[] perm
        start local 1 // double[] x
         0: .line 1259
            aload 0 /* perm */
            aload 1 /* x */
            iconst_0
            aload 0 /* perm */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.stabilize:([I[DII)V
         1: .line 1260
            return
        end local 1 // double[] x
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  perm  [I
            0    2     1     x  [D
    MethodParameters:
      Name  Flags
      perm  final
      x     final

  private static int med3(double[], double[], int, int, int);
    descriptor: ([D[DIII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int a
        start local 3 // int b
        start local 4 // int c
         0: .line 1264
            aload 0 /* x */
            iload 2 /* a */
            daload
            aload 0 /* x */
            iload 3 /* b */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 5 /* t */
        start local 5 // int t
         1: ifne 2
            aload 1 /* y */
            iload 2 /* a */
            daload
            aload 1 /* y */
            iload 3 /* b */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         3: istore 6 /* ab */
        start local 6 // int ab
         4: .line 1265
            aload 0 /* x */
            iload 2 /* a */
            daload
            aload 0 /* x */
            iload 4 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 5 /* t */
            ifne 5
            aload 1 /* y */
            iload 2 /* a */
            daload
            aload 1 /* y */
            iload 4 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            goto 6
      StackMap locals: int
      StackMap stack:
         5: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         6: istore 7 /* ac */
        start local 7 // int ac
         7: .line 1266
            aload 0 /* x */
            iload 3 /* b */
            daload
            aload 0 /* x */
            iload 4 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 5 /* t */
            ifne 8
            aload 1 /* y */
            iload 3 /* b */
            daload
            aload 1 /* y */
            iload 4 /* c */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iload 5 /* t */
      StackMap locals:
      StackMap stack: int
         9: istore 8 /* bc */
        start local 8 // int bc
        10: .line 1267
            iload 6 /* ab */
            ifge 13
            iload 8 /* bc */
            ifge 11
            iload 3 /* b */
            goto 16
      StackMap locals: int
      StackMap stack:
        11: iload 7 /* ac */
            ifge 12
            iload 4 /* c */
            goto 16
      StackMap locals:
      StackMap stack:
        12: iload 2 /* a */
            goto 16
      StackMap locals:
      StackMap stack:
        13: iload 8 /* bc */
            ifle 14
            iload 3 /* b */
            goto 16
      StackMap locals:
      StackMap stack:
        14: iload 7 /* ac */
            ifle 15
            iload 4 /* c */
            goto 16
      StackMap locals:
      StackMap stack:
        15: iload 2 /* a */
      StackMap locals:
      StackMap stack: int
        16: ireturn
        end local 8 // int bc
        end local 7 // int ac
        end local 6 // int ab
        end local 5 // int t
        end local 4 // int c
        end local 3 // int b
        end local 2 // int a
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0     x  [D
            0   17     1     y  [D
            0   17     2     a  I
            0   17     3     b  I
            0   17     4     c  I
            1   17     5     t  I
            4   17     6    ab  I
            7   17     7    ac  I
           10   17     8    bc  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     final
      b     final
      c     final

  private static void swap(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int a
        start local 3 // int b
         0: .line 1270
            aload 0 /* x */
            iload 2 /* a */
            daload
            dstore 4 /* t */
        start local 4 // double t
         1: .line 1271
            aload 1 /* y */
            iload 2 /* a */
            daload
            dstore 6 /* u */
        start local 6 // double u
         2: .line 1272
            aload 0 /* x */
            iload 2 /* a */
            aload 0 /* x */
            iload 3 /* b */
            daload
            dastore
         3: .line 1273
            aload 1 /* y */
            iload 2 /* a */
            aload 1 /* y */
            iload 3 /* b */
            daload
            dastore
         4: .line 1274
            aload 0 /* x */
            iload 3 /* b */
            dload 4 /* t */
            dastore
         5: .line 1275
            aload 1 /* y */
            iload 3 /* b */
            dload 6 /* u */
            dastore
         6: .line 1276
            return
        end local 6 // double u
        end local 4 // double t
        end local 3 // int b
        end local 2 // int a
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0     x  [D
            0    7     1     y  [D
            0    7     2     a  I
            0    7     3     b  I
            1    7     4     t  D
            2    7     6     u  D
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     final
      b     final

  private static void swap(double[], double[], int, int, int);
    descriptor: ([D[DIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int a
        start local 3 // int b
        start local 4 // int n
         0: .line 1278
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 1279
      StackMap locals: int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* a */
            iload 3 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DII)V
         3: .line 1278
            iinc 5 /* i */ 1
            iinc 2 /* a */ 1
            iinc 3 /* b */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 4 /* n */
            if_icmplt 2
        end local 5 // int i
         5: .line 1280
            return
        end local 4 // int n
        end local 3 // int b
        end local 2 // int a
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [D
            0    6     1     y  [D
            0    6     2     a  I
            0    6     3     b  I
            0    6     4     n  I
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      a     
      b     
      n     final

  private static void selectionSort(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // double[] a
        start local 1 // double[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 1283
            iload 2 /* from */
            istore 4 /* i */
        start local 4 // int i
         1: goto 18
         2: .line 1284
      StackMap locals: int
      StackMap stack:
            iload 4 /* i */
            istore 5 /* m */
        start local 5 // int m
         3: .line 1285
            iload 4 /* i */
            iconst_1
            iadd
            istore 7 /* j */
        start local 7 // int j
         4: goto 9
         5: .line 1286
      StackMap locals: double[] double[] int int int int top int
      StackMap stack:
            aload 0 /* a */
            iload 7 /* j */
            daload
            aload 0 /* a */
            iload 5 /* m */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 6 /* u */
        start local 6 // int u
         6: iflt 7
            iload 6 /* u */
            ifne 8
            aload 1 /* b */
            iload 7 /* j */
            daload
            aload 1 /* b */
            iload 5 /* m */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            ifge 8
         7: .line 1287
      StackMap locals: double[] double[] int int int int int int
      StackMap stack:
            iload 7 /* j */
            istore 5 /* m */
         8: .line 1285
      StackMap locals:
      StackMap stack:
            iinc 7 /* j */ 1
        end local 6 // int u
      StackMap locals: double[] double[] int int int int top int
      StackMap stack:
         9: iload 7 /* j */
            iload 3 /* to */
            if_icmplt 5
        end local 7 // int j
        10: .line 1288
            iload 5 /* m */
            iload 4 /* i */
            if_icmpeq 17
        11: .line 1289
            aload 0 /* a */
            iload 4 /* i */
            daload
            dstore 7 /* t */
        start local 7 // double t
        12: .line 1290
            aload 0 /* a */
            iload 4 /* i */
            aload 0 /* a */
            iload 5 /* m */
            daload
            dastore
        13: .line 1291
            aload 0 /* a */
            iload 5 /* m */
            dload 7 /* t */
            dastore
        14: .line 1292
            aload 1 /* b */
            iload 4 /* i */
            daload
            dstore 7 /* t */
        15: .line 1293
            aload 1 /* b */
            iload 4 /* i */
            aload 1 /* b */
            iload 5 /* m */
            daload
            dastore
        16: .line 1294
            aload 1 /* b */
            iload 5 /* m */
            dload 7 /* t */
            dastore
        end local 7 // double t
        end local 5 // int m
        17: .line 1283
      StackMap locals: double[] double[] int int int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 4 /* i */
            iload 3 /* to */
            iconst_1
            isub
            if_icmplt 2
        end local 4 // int i
        19: .line 1297
            return
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [D
            0   20     1     b  [D
            0   20     2  from  I
            0   20     3    to  I
            1   19     4     i  I
            3   17     5     m  I
            6    9     6     u  I
            4   10     7     j  I
           12   17     7     t  D
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void quickSort(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=18, args_size=4
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int from
        start local 3 // int to
         0: .line 1325
            iload 3 /* to */
            iload 2 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 1326
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1327
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([D[DII)V
         3: .line 1328
            return
         4: .line 1331
      StackMap locals: int
      StackMap stack:
            iload 2 /* from */
            iload 4 /* len */
            iconst_2
            idiv
            iadd
            istore 5 /* m */
        start local 5 // int m
         5: .line 1332
            iload 2 /* from */
            istore 6 /* l */
        start local 6 // int l
         6: .line 1333
            iload 3 /* to */
            iconst_1
            isub
            istore 7 /* n */
        start local 7 // int n
         7: .line 1334
            iload 4 /* len */
            sipush 128
            if_icmple 12
         8: .line 1335
            iload 4 /* len */
            bipush 8
            idiv
            istore 8 /* s */
        start local 8 // int s
         9: .line 1336
            aload 0 /* x */
            aload 1 /* y */
            iload 6 /* l */
            iload 6 /* l */
            iload 8 /* s */
            iadd
            iload 6 /* l */
            iconst_2
            iload 8 /* s */
            imul
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([D[DIII)I
            istore 6 /* l */
        10: .line 1337
            aload 0 /* x */
            aload 1 /* y */
            iload 5 /* m */
            iload 8 /* s */
            isub
            iload 5 /* m */
            iload 5 /* m */
            iload 8 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([D[DIII)I
            istore 5 /* m */
        11: .line 1338
            aload 0 /* x */
            aload 1 /* y */
            iload 7 /* n */
            iconst_2
            iload 8 /* s */
            imul
            isub
            iload 7 /* n */
            iload 8 /* s */
            isub
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([D[DIII)I
            istore 7 /* n */
        end local 8 // int s
        12: .line 1340
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 6 /* l */
            iload 5 /* m */
            iload 7 /* n */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.med3:([D[DIII)I
            istore 5 /* m */
        13: .line 1341
            aload 0 /* x */
            iload 5 /* m */
            daload
            dstore 8 /* v */
        start local 8 // double v
        14: aload 1 /* y */
            iload 5 /* m */
            daload
            dstore 10 /* w */
        start local 10 // double w
        15: .line 1343
            iload 2 /* from */
            istore 12 /* a */
        start local 12 // int a
        16: iload 12 /* a */
            istore 13 /* b */
        start local 13 // int b
        17: iload 3 /* to */
            iconst_1
            isub
            istore 14 /* c */
        start local 14 // int c
        18: iload 14 /* c */
            istore 15 /* d */
        start local 15 // int d
        19: .line 1346
            goto 23
        start local 16 // int comparison
        start local 17 // int t
        20: .line 1349
      StackMap locals: double[] double[] int int int int int int double double int int int int int int
      StackMap stack:
            iload 16 /* comparison */
            ifne 22
        21: .line 1350
            aload 0 /* x */
            aload 1 /* y */
            iload 12 /* a */
            iinc 12 /* a */ 1
            iload 13 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DII)V
        22: .line 1351
      StackMap locals:
      StackMap stack:
            iinc 13 /* b */ 1
        end local 17 // int t
        end local 16 // int comparison
        23: .line 1346
      StackMap locals:
      StackMap stack:
            iload 13 /* b */
            iload 14 /* c */
            if_icmpgt 33
            aload 0 /* x */
            iload 13 /* b */
            daload
            dload 8 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 17 /* t */
        start local 17 // int t
        24: ifne 26
        25: .line 1347
            aload 1 /* y */
            iload 13 /* b */
            daload
            dload 10 /* w */
            invokestatic java.lang.Double.compare:(DD)I
            goto 27
        26: .line 1348
      StackMap locals: double[] double[] int int int int int int double double int int int int top int
      StackMap stack:
            iload 17 /* t */
      StackMap locals:
      StackMap stack: int
        27: dup
            istore 16 /* comparison */
        start local 16 // int comparison
        28: .line 1346
            ifle 20
        end local 17 // int t
        end local 16 // int comparison
        29: .line 1353
            goto 33
        start local 16 // int comparison
        start local 17 // int t
        30: .line 1356
      StackMap locals: double[] double[] int int int int int int double double int int int int int int
      StackMap stack:
            iload 16 /* comparison */
            ifne 32
        31: .line 1357
            aload 0 /* x */
            aload 1 /* y */
            iload 14 /* c */
            iload 15 /* d */
            iinc 15 /* d */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DII)V
        32: .line 1358
      StackMap locals:
      StackMap stack:
            iinc 14 /* c */ -1
        end local 17 // int t
        end local 16 // int comparison
        33: .line 1353
      StackMap locals:
      StackMap stack:
            iload 14 /* c */
            iload 13 /* b */
            if_icmplt 39
            aload 0 /* x */
            iload 14 /* c */
            daload
            dload 8 /* v */
            invokestatic java.lang.Double.compare:(DD)I
            dup
            istore 17 /* t */
        start local 17 // int t
        34: ifne 36
        35: .line 1354
            aload 1 /* y */
            iload 14 /* c */
            daload
            dload 10 /* w */
            invokestatic java.lang.Double.compare:(DD)I
            goto 37
        36: .line 1355
      StackMap locals: double[] double[] int int int int int int double double int int int int top int
      StackMap stack:
            iload 17 /* t */
      StackMap locals:
      StackMap stack: int
        37: dup
            istore 16 /* comparison */
        start local 16 // int comparison
        38: .line 1353
            ifge 30
        end local 17 // int t
        end local 16 // int comparison
        39: .line 1360
      StackMap locals: double[] double[] int int int int int int double double int int int int
      StackMap stack:
            iload 13 /* b */
            iload 14 /* c */
            if_icmple 41
        40: .line 1361
            goto 43
        41: .line 1362
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            aload 1 /* y */
            iload 13 /* b */
            iinc 13 /* b */ 1
            iload 14 /* c */
            iinc 14 /* c */ -1
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DII)V
        42: .line 1344
            goto 23
        43: .line 1366
      StackMap locals:
      StackMap stack:
            iload 12 /* a */
            iload 2 /* from */
            isub
            iload 13 /* b */
            iload 12 /* a */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 16 /* s */
        start local 16 // int s
        44: .line 1367
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 13 /* b */
            iload 16 /* s */
            isub
            iload 16 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DIII)V
        45: .line 1368
            iload 15 /* d */
            iload 14 /* c */
            isub
            iload 3 /* to */
            iload 15 /* d */
            isub
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 16 /* s */
        46: .line 1369
            aload 0 /* x */
            aload 1 /* y */
            iload 13 /* b */
            iload 3 /* to */
            iload 16 /* s */
            isub
            iload 16 /* s */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.swap:([D[DIII)V
        47: .line 1371
            iload 13 /* b */
            iload 12 /* a */
            isub
            dup
            istore 16 /* s */
            iconst_1
            if_icmple 49
        48: .line 1372
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 2 /* from */
            iload 16 /* s */
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
        49: .line 1373
      StackMap locals: int
      StackMap stack:
            iload 15 /* d */
            iload 14 /* c */
            isub
            dup
            istore 16 /* s */
            iconst_1
            if_icmple 51
        50: .line 1374
            aload 0 /* x */
            aload 1 /* y */
            iload 3 /* to */
            iload 16 /* s */
            isub
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
        51: .line 1375
      StackMap locals:
      StackMap stack:
            return
        end local 16 // int s
        end local 15 // int d
        end local 14 // int c
        end local 13 // int b
        end local 12 // int a
        end local 10 // double w
        end local 8 // double v
        end local 7 // int n
        end local 6 // int l
        end local 5 // int m
        end local 4 // int len
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   52     0           x  [D
            0   52     1           y  [D
            0   52     2        from  I
            0   52     3          to  I
            1   52     4         len  I
            5   52     5           m  I
            6   52     6           l  I
            7   52     7           n  I
            9   12     8           s  I
           14   52     8           v  D
           15   52    10           w  D
           16   52    12           a  I
           17   52    13           b  I
           18   52    14           c  I
           19   52    15           d  I
           20   23    16  comparison  I
           28   29    16  comparison  I
           30   33    16  comparison  I
           38   39    16  comparison  I
           20   23    17           t  I
           24   29    17           t  I
           30   33    17           t  I
           34   39    17           t  I
           44   52    16           s  I
    MethodParameters:
      Name  Flags
      x     final
      y     final
      from  final
      to    final

  public static void quickSort(double[], double[]);
    descriptor: ([D[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] x
        start local 1 // double[] y
         0: .line 1398
            aload 0 /* x */
            aload 1 /* y */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureSameLength:([D[D)V
         1: .line 1399
            aload 0 /* x */
            aload 1 /* y */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
         2: .line 1400
            return
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  [D
            0    3     1     y  [D
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public static void parallelQuickSort(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // double[] x
        start local 1 // double[] y
        start local 2 // int from
        start local 3 // int to
         0: .line 1501
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 8192
            if_icmpge 2
         1: .line 1502
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
         2: .line 1503
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.ForkJoinPool
            dup
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            invokespecial java.util.concurrent.ForkJoinPool.<init>:(I)V
            astore 4 /* pool */
        start local 4 // java.util.concurrent.ForkJoinPool pool
         3: .line 1504
            aload 4 /* pool */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort2
            dup
            aload 0 /* x */
            aload 1 /* y */
            iload 2 /* from */
            iload 3 /* to */
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort2.<init>:([D[DII)V
            invokevirtual java.util.concurrent.ForkJoinPool.invoke:(Ljava/util/concurrent/ForkJoinTask;)Ljava/lang/Object;
            pop
         4: .line 1505
            aload 4 /* pool */
            invokevirtual java.util.concurrent.ForkJoinPool.shutdown:()V
         5: .line 1506
            return
        end local 4 // java.util.concurrent.ForkJoinPool pool
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  [D
            0    6     1     y  [D
            0    6     2  from  I
            0    6     3    to  I
            3    6     4  pool  Ljava/util/concurrent/ForkJoinPool;
    MethodParameters:
      Name  Flags
      x     final
      y     final
      from  final
      to    final

  public static void parallelQuickSort(double[], double[]);
    descriptor: ([D[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] x
        start local 1 // double[] y
         0: .line 1533
            aload 0 /* x */
            aload 1 /* y */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureSameLength:([D[D)V
         1: .line 1534
            aload 0 /* x */
            aload 1 /* y */
            iconst_0
            aload 0 /* x */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelQuickSort:([D[DII)V
         2: .line 1535
            return
        end local 1 // double[] y
        end local 0 // double[] x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  [D
            0    3     1     y  [D
    MethodParameters:
      Name  Flags
      x     final
      y     final

  public static void unstableSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1554
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 2000
            if_icmplt 3
         1: .line 1555
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSort:([DII)V
         2: .line 1556
            goto 4
         3: .line 1557
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
         4: .line 1559
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0     a  [D
            0    5     1  from  I
            0    5     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void unstableSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 1571
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.unstableSort:([DII)V
         1: .line 1572
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     final

  public static void unstableSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1590
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 1591
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void unstableSort(double[], it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DLit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1604
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.unstableSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 1605
            return
        end local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static void mergeSort(double[], int, int, double[]);
    descriptor: ([DII[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // double[] supp
         0: .line 1628
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* len */
        start local 4 // int len
         1: .line 1630
            iload 4 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1631
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSort:([DII)V
         3: .line 1632
            return
         4: .line 1635
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 5 /* mid */
        start local 5 // int mid
         5: .line 1636
            aload 3 /* supp */
            iload 1 /* from */
            iload 5 /* mid */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DII[D)V
         6: .line 1637
            aload 3 /* supp */
            iload 5 /* mid */
            iload 2 /* to */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DII[D)V
         7: .line 1640
            aload 3 /* supp */
            iload 5 /* mid */
            iconst_1
            isub
            daload
            aload 3 /* supp */
            iload 5 /* mid */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            ifgt 10
         8: .line 1641
            aload 3 /* supp */
            iload 1 /* from */
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 1642
            return
        10: .line 1645
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            istore 6 /* i */
        start local 6 // int i
        11: iload 1 /* from */
            istore 7 /* p */
        start local 7 // int p
        12: iload 5 /* mid */
            istore 8 /* q */
        start local 8 // int q
        13: goto 18
        14: .line 1646
      StackMap locals: int int int
      StackMap stack:
            iload 8 /* q */
            iload 2 /* to */
            if_icmpge 15
            iload 7 /* p */
            iload 5 /* mid */
            if_icmpge 16
            aload 3 /* supp */
            iload 7 /* p */
            daload
            aload 3 /* supp */
            iload 8 /* q */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            ifgt 16
        15: .line 1647
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* i */
            aload 3 /* supp */
            iload 7 /* p */
            iinc 7 /* p */ 1
            daload
            dastore
            goto 17
        16: .line 1649
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 6 /* i */
            aload 3 /* supp */
            iload 8 /* q */
            iinc 8 /* q */ 1
            daload
            dastore
        17: .line 1645
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 6 /* i */
            iload 2 /* to */
            if_icmplt 14
        end local 8 // int q
        end local 7 // int p
        end local 6 // int i
        19: .line 1651
            return
        end local 5 // int mid
        end local 4 // int len
        end local 3 // double[] supp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [D
            0   20     1  from  I
            0   20     2    to  I
            0   20     3  supp  [D
            1   20     4   len  I
            5   20     5   mid  I
           11   19     6     i  I
           12   19     7     p  I
           13   19     8     q  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      supp  final

  public static void mergeSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1669
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 0 /* a */
            invokevirtual double[].clone:()Ljava/lang/Object;
            checkcast double[]
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DII[D)V
         1: .line 1670
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void mergeSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 1683
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DII)V
         1: .line 1684
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     final

  public static void mergeSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator, double[]);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        start local 4 // double[] supp
         0: .line 1709
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 5 /* len */
        start local 5 // int len
         1: .line 1711
            iload 5 /* len */
            bipush 16
            if_icmpge 4
         2: .line 1712
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         3: .line 1713
            return
         4: .line 1716
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 6 /* mid */
        start local 6 // int mid
         5: .line 1717
            aload 4 /* supp */
            iload 1 /* from */
            iload 6 /* mid */
            aload 3 /* comp */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;[D)V
         6: .line 1718
            aload 4 /* supp */
            iload 6 /* mid */
            iload 2 /* to */
            aload 3 /* comp */
            aload 0 /* a */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;[D)V
         7: .line 1721
            aload 3 /* comp */
            aload 4 /* supp */
            iload 6 /* mid */
            iconst_1
            isub
            daload
            aload 4 /* supp */
            iload 6 /* mid */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            ifgt 10
         8: .line 1722
            aload 4 /* supp */
            iload 1 /* from */
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         9: .line 1723
            return
        10: .line 1726
      StackMap locals: int
      StackMap stack:
            iload 1 /* from */
            istore 7 /* i */
        start local 7 // int i
        11: iload 1 /* from */
            istore 8 /* p */
        start local 8 // int p
        12: iload 6 /* mid */
            istore 9 /* q */
        start local 9 // int q
        13: goto 18
        14: .line 1727
      StackMap locals: int int int
      StackMap stack:
            iload 9 /* q */
            iload 2 /* to */
            if_icmpge 15
            iload 8 /* p */
            iload 6 /* mid */
            if_icmpge 16
            aload 3 /* comp */
            aload 4 /* supp */
            iload 8 /* p */
            daload
            aload 4 /* supp */
            iload 9 /* q */
            daload
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            ifgt 16
        15: .line 1728
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 7 /* i */
            aload 4 /* supp */
            iload 8 /* p */
            iinc 8 /* p */ 1
            daload
            dastore
            goto 17
        16: .line 1730
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 7 /* i */
            aload 4 /* supp */
            iload 9 /* q */
            iinc 9 /* q */ 1
            daload
            dastore
        17: .line 1726
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            iload 2 /* to */
            if_icmplt 14
        end local 9 // int q
        end local 8 // int p
        end local 7 // int i
        19: .line 1732
            return
        end local 6 // int mid
        end local 5 // int len
        end local 4 // double[] supp
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0     a  [D
            0   20     1  from  I
            0   20     2    to  I
            0   20     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            0   20     4  supp  [D
            1   20     5   len  I
            5   20     6   mid  I
           11   19     7     i  I
           12   19     8     p  I
           13   19     9     q  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  
      supp  final

  public static void mergeSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1752
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            aload 0 /* a */
            invokevirtual double[].clone:()Ljava/lang/Object;
            checkcast double[]
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;[D)V
         1: .line 1753
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void mergeSort(double[], it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DLit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1769
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 1770
            return
        end local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static void stableSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 1794
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DII)V
         1: .line 1795
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void stableSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 1812
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.stableSort:([DII)V
         1: .line 1813
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     final

  public static void stableSort(double[], int, int, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1836
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            aload 3 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.mergeSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 1837
            return
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  from  I
            0    2     2    to  I
            0    2     3  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final
      comp  

  public static void stableSort(double[], it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DLit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
         0: .line 1856
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            aload 1 /* comp */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.stableSort:([DIILit/unimi/dsi/fastutil/doubles/DoubleComparator;)V
         1: .line 1857
            return
        end local 1 // it.unimi.dsi.fastutil.doubles.DoubleComparator comp
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
            0    2     1  comp  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      comp  

  public static int binarySearch(double[], int, int, double);
    descriptor: ([DIID)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // double key
         0: .line 1885
            iinc 2 /* to */ -1
         1: .line 1886
            goto 9
         2: .line 1887
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 7 /* mid */
        start local 7 // int mid
         3: .line 1888
            aload 0 /* a */
            iload 7 /* mid */
            daload
            dstore 5 /* midVal */
        start local 5 // double midVal
         4: .line 1889
            dload 5 /* midVal */
            dload 3 /* key */
            dcmpg
            ifge 6
         5: .line 1890
            iload 7 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
            goto 9
         6: .line 1891
      StackMap locals: double int
      StackMap stack:
            dload 5 /* midVal */
            dload 3 /* key */
            dcmpl
            ifle 8
         7: .line 1892
            iload 7 /* mid */
            iconst_1
            isub
            istore 2 /* to */
            goto 9
         8: .line 1894
      StackMap locals:
      StackMap stack:
            iload 7 /* mid */
            ireturn
        end local 7 // int mid
        end local 5 // double midVal
         9: .line 1886
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            if_icmple 2
        10: .line 1896
            iload 1 /* from */
            iconst_1
            iadd
            ineg
            ireturn
        end local 3 // double key
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0       a  [D
            0   11     1    from  I
            0   11     2      to  I
            0   11     3     key  D
            4    9     5  midVal  D
            3    9     7     mid  I
    MethodParameters:
      Name  Flags
      a     final
      from  
      to    
      key   final

  public static int binarySearch(double[], double);
    descriptor: ([DD)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // double[] a
        start local 1 // double key
         0: .line 1918
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            dload 1 /* key */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.binarySearch:([DIID)I
            ireturn
        end local 1 // double key
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  [D
            0    1     1   key  D
    MethodParameters:
      Name  Flags
      a     final
      key   final

  public static int binarySearch(double[], int, int, double, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DIIDLit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // double key
        start local 5 // it.unimi.dsi.fastutil.doubles.DoubleComparator c
         0: .line 1948
            iinc 2 /* to */ -1
         1: .line 1949
            goto 10
         2: .line 1950
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            iadd
            iconst_1
            iushr
            istore 8 /* mid */
        start local 8 // int mid
         3: .line 1951
            aload 0 /* a */
            iload 8 /* mid */
            daload
            dstore 6 /* midVal */
        start local 6 // double midVal
         4: .line 1952
            aload 5 /* c */
            dload 6 /* midVal */
            dload 3 /* key */
            invokeinterface it.unimi.dsi.fastutil.doubles.DoubleComparator.compare:(DD)I
            istore 9 /* cmp */
        start local 9 // int cmp
         5: .line 1953
            iload 9 /* cmp */
            ifge 7
         6: .line 1954
            iload 8 /* mid */
            iconst_1
            iadd
            istore 1 /* from */
            goto 10
         7: .line 1955
      StackMap locals: double int int
      StackMap stack:
            iload 9 /* cmp */
            ifle 9
         8: .line 1956
            iload 8 /* mid */
            iconst_1
            isub
            istore 2 /* to */
            goto 10
         9: .line 1958
      StackMap locals:
      StackMap stack:
            iload 8 /* mid */
            ireturn
        end local 9 // int cmp
        end local 8 // int mid
        end local 6 // double midVal
        10: .line 1949
      StackMap locals:
      StackMap stack:
            iload 1 /* from */
            iload 2 /* to */
            if_icmple 2
        11: .line 1960
            iload 1 /* from */
            iconst_1
            iadd
            ineg
            ireturn
        end local 5 // it.unimi.dsi.fastutil.doubles.DoubleComparator c
        end local 3 // double key
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0       a  [D
            0   12     1    from  I
            0   12     2      to  I
            0   12     3     key  D
            0   12     5       c  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
            4   10     6  midVal  D
            3   10     8     mid  I
            5   10     9     cmp  I
    MethodParameters:
      Name  Flags
      a     final
      from  
      to    
      key   final
      c     final

  public static int binarySearch(double[], double, it.unimi.dsi.fastutil.doubles.DoubleComparator);
    descriptor: ([DDLit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // double[] a
        start local 1 // double key
        start local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator c
         0: .line 1985
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            dload 1 /* key */
            aload 3 /* c */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.binarySearch:([DIIDLit/unimi/dsi/fastutil/doubles/DoubleComparator;)I
            ireturn
        end local 3 // it.unimi.dsi.fastutil.doubles.DoubleComparator c
        end local 1 // double key
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     a  [D
            0    1     1   key  D
            0    1     3     c  Lit/unimi/dsi/fastutil/doubles/DoubleComparator;
    MethodParameters:
      Name  Flags
      a     final
      key   final
      c     final

  private static final long fixDouble(double);
    descriptor: (D)J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // double d
         0: .line 2005
            dload 0 /* d */
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            lstore 2 /* l */
        start local 2 // long l
         1: .line 2006
            lload 2 /* l */
            lconst_0
            lcmp
            iflt 2
            lload 2 /* l */
            goto 3
      StackMap locals: long
      StackMap stack:
         2: lload 2 /* l */
            ldc 9223372036854775807
            lxor
      StackMap locals:
      StackMap stack: long
         3: lreturn
        end local 2 // long l
        end local 0 // double d
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     d  D
            1    4     2     l  J
    MethodParameters:
      Name  Flags
      d     final

  public static void radixSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 2025
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSort:([DII)V
         1: .line 2026
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=23, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 2048
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2049
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
         2: .line 2050
            return
         3: .line 2054
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* stackPos */
        start local 3 // int stackPos
         4: .line 2055
            sipush 1786
            newarray 10
            astore 4 /* offsetStack */
        start local 4 // int[] offsetStack
         5: .line 2056
            sipush 1786
            newarray 10
            astore 5 /* lengthStack */
        start local 5 // int[] lengthStack
         6: .line 2057
            sipush 1786
            newarray 10
            astore 6 /* levelStack */
        start local 6 // int[] levelStack
         7: .line 2058
            aload 4 /* offsetStack */
            iload 3 /* stackPos */
            iload 1 /* from */
            iastore
         8: .line 2059
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iastore
         9: .line 2060
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iinc 3 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2061
            sipush 256
            newarray 10
            astore 7 /* count */
        start local 7 // int[] count
        11: .line 2062
            sipush 256
            newarray 10
            astore 8 /* pos */
        start local 8 // int[] pos
        12: .line 2063
            goto 56
        13: .line 2064
      StackMap locals: double[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            aload 4 /* offsetStack */
            iinc 3 /* stackPos */ -1
            iload 3 /* stackPos */
            iaload
            istore 9 /* first */
        start local 9 // int first
        14: .line 2065
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            iaload
            istore 10 /* length */
        start local 10 // int length
        15: .line 2066
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iaload
            istore 11 /* level */
        start local 11 // int level
        16: .line 2067
            iload 11 /* level */
            bipush 8
            irem
            ifne 17
            sipush 128
            goto 18
      StackMap locals: int int int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 12 /* signMask */
        start local 12 // int signMask
        19: .line 2068
            bipush 7
            iload 11 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 13 /* shift */
        start local 13 // int shift
        20: .line 2073
            iload 9 /* first */
            iload 10 /* length */
            iadd
            istore 14 /* i */
        start local 14 // int i
        21: goto 23
        22: .line 2074
      StackMap locals: int int int
      StackMap stack:
            aload 7 /* count */
            aload 0 /* a */
            iload 14 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 12 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        23: .line 2073
      StackMap locals:
      StackMap stack:
            iload 14 /* i */
            iinc 14 /* i */ -1
            iload 9 /* first */
            if_icmpne 22
        end local 14 // int i
        24: .line 2076
            iconst_m1
            istore 14 /* lastUsed */
        start local 14 // int lastUsed
        25: .line 2077
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        26: iload 9 /* first */
            istore 16 /* p */
        start local 16 // int p
        27: goto 32
        28: .line 2078
      StackMap locals: int int
      StackMap stack:
            aload 7 /* count */
            iload 15 /* i */
            iaload
            ifeq 30
        29: .line 2079
            iload 15 /* i */
            istore 14 /* lastUsed */
        30: .line 2080
      StackMap locals:
      StackMap stack:
            aload 8 /* pos */
            iload 15 /* i */
            iload 16 /* p */
            aload 7 /* count */
            iload 15 /* i */
            iaload
            iadd
            dup
            istore 16 /* p */
            iastore
        31: .line 2077
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 15 /* i */
            sipush 256
            if_icmplt 28
        end local 16 // int p
        end local 15 // int i
        33: .line 2082
            iload 9 /* first */
            iload 10 /* length */
            iadd
            aload 7 /* count */
            iload 14 /* lastUsed */
            iaload
            isub
            istore 15 /* end */
        start local 15 // int end
        34: .line 2084
            iload 9 /* first */
            istore 16 /* i */
        start local 16 // int i
        35: iconst_m1
            istore 17 /* c */
        start local 17 // int c
        36: goto 55
        37: .line 2085
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 16 /* i */
            daload
            dstore 19 /* t */
        start local 19 // double t
        38: .line 2086
            dload 19 /* t */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 12 /* signMask */
            i2l
            lxor
            l2i
            istore 17 /* c */
        39: .line 2087
            iload 16 /* i */
            iload 15 /* end */
            if_icmpge 48
        40: .line 2088
            goto 45
        start local 18 // int d
        41: .line 2089
      StackMap locals: int double
      StackMap stack:
            dload 19 /* t */
            dstore 21 /* z */
        start local 21 // double z
        42: .line 2090
            aload 0 /* a */
            iload 18 /* d */
            daload
            dstore 19 /* t */
        43: .line 2091
            aload 0 /* a */
            iload 18 /* d */
            dload 21 /* z */
            dastore
        44: .line 2092
            dload 19 /* t */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 12 /* signMask */
            i2l
            lxor
            l2i
            istore 17 /* c */
        end local 21 // double z
        end local 18 // int d
        45: .line 2088
      StackMap locals: double[] int int int int[] int[] int[] int[] int[] int int int int int int int int int top double
      StackMap stack:
            aload 8 /* pos */
            iload 17 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 18 /* d */
        start local 18 // int d
        46: iload 16 /* i */
            if_icmpgt 41
        47: .line 2094
            aload 0 /* a */
            iload 16 /* i */
            dload 19 /* t */
            dastore
        end local 18 // int d
        48: .line 2096
      StackMap locals:
      StackMap stack:
            iload 11 /* level */
            bipush 7
            if_icmpge 54
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iconst_1
            if_icmple 54
        49: .line 2097
            aload 7 /* count */
            iload 17 /* c */
            iaload
            sipush 1024
            if_icmpge 51
        50: .line 2098
            aload 0 /* a */
            iload 16 /* i */
            iload 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
            goto 54
        51: .line 2100
      StackMap locals:
      StackMap stack:
            aload 4 /* offsetStack */
            iload 3 /* stackPos */
            iload 16 /* i */
            iastore
        52: .line 2101
            aload 5 /* lengthStack */
            iload 3 /* stackPos */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iastore
        53: .line 2102
            aload 6 /* levelStack */
            iload 3 /* stackPos */
            iinc 3 /* stackPos */ 1
            iload 11 /* level */
            iconst_1
            iadd
            iastore
        end local 19 // double t
        54: .line 2084
      StackMap locals: double[] int int int int[] int[] int[] int[] int[] int int int int int int int int int
      StackMap stack:
            iload 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iaload
            iadd
            istore 16 /* i */
            aload 7 /* count */
            iload 17 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        55: iload 16 /* i */
            iload 15 /* end */
            if_icmple 37
        end local 17 // int c
        end local 16 // int i
        end local 15 // int end
        end local 14 // int lastUsed
        end local 13 // int shift
        end local 12 // int signMask
        end local 11 // int level
        end local 10 // int length
        end local 9 // int first
        56: .line 2063
      StackMap locals: double[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            iload 3 /* stackPos */
            ifgt 13
        57: .line 2107
            return
        end local 8 // int[] pos
        end local 7 // int[] count
        end local 6 // int[] levelStack
        end local 5 // int[] lengthStack
        end local 4 // int[] offsetStack
        end local 3 // int stackPos
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   58     0            a  [D
            0   58     1         from  I
            0   58     2           to  I
            4   58     3     stackPos  I
            5   58     4  offsetStack  [I
            6   58     5  lengthStack  [I
            7   58     6   levelStack  [I
           11   58     7        count  [I
           12   58     8          pos  [I
           14   56     9        first  I
           15   56    10       length  I
           16   56    11        level  I
           19   56    12     signMask  I
           20   56    13        shift  I
           21   24    14            i  I
           25   56    14     lastUsed  I
           26   33    15            i  I
           27   33    16            p  I
           34   56    15          end  I
           35   56    16            i  I
           36   56    17            c  I
           41   45    18            d  I
           46   48    18            d  I
           38   54    19            t  D
           42   45    21            z  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void parallelRadixSort(double[], int, int);
    descriptor: ([DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 2141
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2142
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
         2: .line 2143
            return
         3: .line 2146
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 3 /* queue */
        start local 3 // java.util.concurrent.LinkedBlockingQueue queue
         4: .line 2147
            aload 3 /* queue */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 1 /* from */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2148
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 4 /* queueSize */
        start local 4 // java.util.concurrent.atomic.AtomicInteger queueSize
         6: .line 2149
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 5 /* numberOfThreads */
        start local 5 // int numberOfThreads
         7: .line 2150
            iload 5 /* numberOfThreads */
         8: .line 2151
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
         9: .line 2150
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 6 /* executorService */
        start local 6 // java.util.concurrent.ExecutorService executorService
        10: .line 2152
            new java.util.concurrent.ExecutorCompletionService
            dup
        11: .line 2153
            aload 6 /* executorService */
        12: .line 2152
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 7 /* executorCompletionService */
        start local 7 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        13: .line 2154
            iload 5 /* numberOfThreads */
            istore 8 /* j */
        start local 8 // int j
        14: goto 16
        15: .line 2155
      StackMap locals: double[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int
      StackMap stack:
            aload 7 /* executorCompletionService */
            aload 4 /* queueSize */
            iload 5 /* numberOfThreads */
            aload 3 /* queue */
            aload 0 /* a */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/doubles/DoubleArrays.lambda$0(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        16: .line 2154
      StackMap locals:
      StackMap stack:
            iload 8 /* j */
            iinc 8 /* j */ -1
            ifne 15
        end local 8 // int j
        17: .line 2212
            aconst_null
            astore 8 /* problem */
        start local 8 // java.lang.Throwable problem
        18: .line 2213
            iload 5 /* numberOfThreads */
            istore 9 /* i */
        start local 9 // int i
        19: goto 24
        20: .line 2215
      StackMap locals: double[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService java.lang.Throwable int
      StackMap stack:
            aload 7 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        21: .line 2216
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Exception
        22: astore 10 /* e */
        start local 10 // java.lang.Exception e
        23: .line 2217
            aload 10 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 8 /* problem */
        end local 10 // java.lang.Exception e
        24: .line 2213
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iinc 9 /* i */ -1
            ifne 20
        end local 9 // int i
        25: .line 2219
            aload 6 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        26: .line 2220
            aload 8 /* problem */
            ifnull 30
        27: .line 2221
            aload 8 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 28
            aload 8 /* problem */
            checkcast java.lang.RuntimeException
            goto 29
      StackMap locals:
      StackMap stack:
        28: new java.lang.RuntimeException
            dup
            aload 8 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        29: athrow
        30: .line 2222
      StackMap locals:
      StackMap stack:
            return
        end local 8 // java.lang.Throwable problem
        end local 7 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 6 // java.util.concurrent.ExecutorService executorService
        end local 5 // int numberOfThreads
        end local 4 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 3 // java.util.concurrent.LinkedBlockingQueue queue
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   31     0                          a  [D
            0   31     1                       from  I
            0   31     2                         to  I
            4   31     3                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;>;
            6   31     4                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            7   31     5            numberOfThreads  I
           10   31     6            executorService  Ljava/util/concurrent/ExecutorService;
           13   31     7  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           14   17     8                          j  I
           18   31     8                    problem  Ljava/lang/Throwable;
           19   25     9                          i  I
           23   24    10                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          20    21      22  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static void parallelRadixSort(double[]);
    descriptor: ([D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // double[] a
         0: .line 2239
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelRadixSort:([DII)V
         1: .line 2240
            return
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [D
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSortIndirect(int[], double[], boolean);
    descriptor: ([I[DZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // boolean stable
         0: .line 2266
            aload 0 /* perm */
            aload 1 /* a */
            iconst_0
            aload 0 /* perm */
            arraylength
            iload 2 /* stable */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSortIndirect:([I[DIIZ)V
         1: .line 2267
            return
        end local 2 // boolean stable
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    perm  [I
            0    2     1       a  [D
            0    2     2  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      stable  final

  public static void radixSortIndirect(int[], double[], int, int, boolean);
    descriptor: ([I[DIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=24, args_size=5
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // int from
        start local 3 // int to
        start local 4 // boolean stable
         0: .line 2300
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2301
            aload 0 /* perm */
            aload 1 /* a */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[DII)V
         2: .line 2302
            return
         3: .line 2306
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* stackPos */
        start local 5 // int stackPos
         4: .line 2307
            sipush 1786
            newarray 10
            astore 6 /* offsetStack */
        start local 6 // int[] offsetStack
         5: .line 2308
            sipush 1786
            newarray 10
            astore 7 /* lengthStack */
        start local 7 // int[] lengthStack
         6: .line 2309
            sipush 1786
            newarray 10
            astore 8 /* levelStack */
        start local 8 // int[] levelStack
         7: .line 2310
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 2 /* from */
            iastore
         8: .line 2311
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iastore
         9: .line 2312
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2313
            sipush 256
            newarray 10
            astore 9 /* count */
        start local 9 // int[] count
        11: .line 2314
            sipush 256
            newarray 10
            astore 10 /* pos */
        start local 10 // int[] pos
        12: .line 2315
            iload 4 /* stable */
            ifeq 13
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 14
      StackMap locals: int[] double[] int int int int int[] int[] int[] int[] int[]
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: int[]
        14: astore 11 /* support */
        start local 11 // int[] support
        15: .line 2316
            goto 81
        16: .line 2317
      StackMap locals: int[]
      StackMap stack:
            aload 6 /* offsetStack */
            iinc 5 /* stackPos */ -1
            iload 5 /* stackPos */
            iaload
            istore 12 /* first */
        start local 12 // int first
        17: .line 2318
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            iaload
            istore 13 /* length */
        start local 13 // int length
        18: .line 2319
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iaload
            istore 14 /* level */
        start local 14 // int level
        19: .line 2320
            iload 14 /* level */
            bipush 8
            irem
            ifne 20
            sipush 128
            goto 21
      StackMap locals: int int int
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: istore 15 /* signMask */
        start local 15 // int signMask
        22: .line 2321
            bipush 7
            iload 14 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 16 /* shift */
        start local 16 // int shift
        23: .line 2326
            iload 12 /* first */
            iload 13 /* length */
            iadd
            istore 17 /* i */
        start local 17 // int i
        24: goto 26
        25: .line 2327
      StackMap locals: int int int
      StackMap stack:
            aload 9 /* count */
            aload 1 /* a */
            aload 0 /* perm */
            iload 17 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 16 /* shift */
            lushr
            ldc 255
            land
            iload 15 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        26: .line 2326
      StackMap locals:
      StackMap stack:
            iload 17 /* i */
            iinc 17 /* i */ -1
            iload 12 /* first */
            if_icmpne 25
        end local 17 // int i
        27: .line 2329
            iconst_m1
            istore 17 /* lastUsed */
        start local 17 // int lastUsed
        28: .line 2330
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        29: iload 4 /* stable */
            ifeq 30
            iconst_0
            goto 31
      StackMap locals: int
      StackMap stack:
        30: iload 12 /* first */
      StackMap locals:
      StackMap stack: int
        31: istore 19 /* p */
        start local 19 // int p
        32: goto 37
        33: .line 2331
      StackMap locals: int
      StackMap stack:
            aload 9 /* count */
            iload 18 /* i */
            iaload
            ifeq 35
        34: .line 2332
            iload 18 /* i */
            istore 17 /* lastUsed */
        35: .line 2333
      StackMap locals:
      StackMap stack:
            aload 10 /* pos */
            iload 18 /* i */
            iload 19 /* p */
            aload 9 /* count */
            iload 18 /* i */
            iaload
            iadd
            dup
            istore 19 /* p */
            iastore
        36: .line 2330
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        37: iload 18 /* i */
            sipush 256
            if_icmplt 33
        end local 19 // int p
        end local 18 // int i
        38: .line 2335
            iload 4 /* stable */
            ifeq 58
        39: .line 2336
            iload 12 /* first */
            iload 13 /* length */
            iadd
            istore 18 /* i */
        start local 18 // int i
        40: goto 42
        41: .line 2337
      StackMap locals:
      StackMap stack:
            aload 11 /* support */
            aload 10 /* pos */
            aload 1 /* a */
            aload 0 /* perm */
            iload 18 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 16 /* shift */
            lushr
            ldc 255
            land
            iload 15 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 0 /* perm */
            iload 18 /* i */
            iaload
            iastore
        42: .line 2336
      StackMap locals:
      StackMap stack:
            iload 18 /* i */
            iinc 18 /* i */ -1
            iload 12 /* first */
            if_icmpne 41
        end local 18 // int i
        43: .line 2338
            aload 11 /* support */
            iconst_0
            aload 0 /* perm */
            iload 12 /* first */
            iload 13 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        44: .line 2339
            iconst_0
            istore 18 /* i */
        start local 18 // int i
        45: iload 12 /* first */
            istore 19 /* p */
        start local 19 // int p
        46: goto 55
        47: .line 2340
      StackMap locals: int
      StackMap stack:
            iload 14 /* level */
            bipush 7
            if_icmpge 53
            aload 9 /* count */
            iload 18 /* i */
            iaload
            iconst_1
            if_icmple 53
        48: .line 2341
            aload 9 /* count */
            iload 18 /* i */
            iaload
            sipush 1024
            if_icmpge 50
        49: .line 2342
            aload 0 /* perm */
            aload 1 /* a */
            iload 19 /* p */
            iload 19 /* p */
            aload 9 /* count */
            iload 18 /* i */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[DII)V
            goto 53
        50: .line 2344
      StackMap locals:
      StackMap stack:
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 19 /* p */
            iastore
        51: .line 2345
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            aload 9 /* count */
            iload 18 /* i */
            iaload
            iastore
        52: .line 2346
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iload 14 /* level */
            iconst_1
            iadd
            iastore
        53: .line 2349
      StackMap locals:
      StackMap stack:
            iload 19 /* p */
            aload 9 /* count */
            iload 18 /* i */
            iaload
            iadd
            istore 19 /* p */
        54: .line 2339
            iinc 18 /* i */ 1
      StackMap locals:
      StackMap stack:
        55: iload 18 /* i */
            iload 17 /* lastUsed */
            if_icmple 47
        end local 19 // int p
        end local 18 // int i
        56: .line 2351
            aload 9 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        57: .line 2352
            goto 81
        58: .line 2353
      StackMap locals:
      StackMap stack:
            iload 12 /* first */
            iload 13 /* length */
            iadd
            aload 9 /* count */
            iload 17 /* lastUsed */
            iaload
            isub
            istore 18 /* end */
        start local 18 // int end
        59: .line 2355
            iload 12 /* first */
            istore 19 /* i */
        start local 19 // int i
        60: iconst_m1
            istore 20 /* c */
        start local 20 // int c
        61: goto 80
        62: .line 2356
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 19 /* i */
            iaload
            istore 22 /* t */
        start local 22 // int t
        63: .line 2357
            aload 1 /* a */
            iload 22 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 16 /* shift */
            lushr
            ldc 255
            land
            iload 15 /* signMask */
            i2l
            lxor
            l2i
            istore 20 /* c */
        64: .line 2358
            iload 19 /* i */
            iload 18 /* end */
            if_icmpge 73
        65: .line 2359
            goto 70
        start local 21 // int d
        66: .line 2360
      StackMap locals: int int
      StackMap stack:
            iload 22 /* t */
            istore 23 /* z */
        start local 23 // int z
        67: .line 2361
            aload 0 /* perm */
            iload 21 /* d */
            iaload
            istore 22 /* t */
        68: .line 2362
            aload 0 /* perm */
            iload 21 /* d */
            iload 23 /* z */
            iastore
        69: .line 2363
            aload 1 /* a */
            iload 22 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 16 /* shift */
            lushr
            ldc 255
            land
            iload 15 /* signMask */
            i2l
            lxor
            l2i
            istore 20 /* c */
        end local 23 // int z
        end local 21 // int d
        70: .line 2359
      StackMap locals: int[] double[] int int int int int[] int[] int[] int[] int[] int[] int int int int int int int int int top int
      StackMap stack:
            aload 10 /* pos */
            iload 20 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 21 /* d */
        start local 21 // int d
        71: iload 19 /* i */
            if_icmpgt 66
        72: .line 2365
            aload 0 /* perm */
            iload 19 /* i */
            iload 22 /* t */
            iastore
        end local 21 // int d
        73: .line 2367
      StackMap locals:
      StackMap stack:
            iload 14 /* level */
            bipush 7
            if_icmpge 79
            aload 9 /* count */
            iload 20 /* c */
            iaload
            iconst_1
            if_icmple 79
        74: .line 2368
            aload 9 /* count */
            iload 20 /* c */
            iaload
            sipush 1024
            if_icmpge 76
        75: .line 2369
            aload 0 /* perm */
            aload 1 /* a */
            iload 19 /* i */
            iload 19 /* i */
            aload 9 /* count */
            iload 20 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[DII)V
            goto 79
        76: .line 2371
      StackMap locals:
      StackMap stack:
            aload 6 /* offsetStack */
            iload 5 /* stackPos */
            iload 19 /* i */
            iastore
        77: .line 2372
            aload 7 /* lengthStack */
            iload 5 /* stackPos */
            aload 9 /* count */
            iload 20 /* c */
            iaload
            iastore
        78: .line 2373
            aload 8 /* levelStack */
            iload 5 /* stackPos */
            iinc 5 /* stackPos */ 1
            iload 14 /* level */
            iconst_1
            iadd
            iastore
        end local 22 // int t
        79: .line 2355
      StackMap locals: int[] double[] int int int int int[] int[] int[] int[] int[] int[] int int int int int int int int int
      StackMap stack:
            iload 19 /* i */
            aload 9 /* count */
            iload 20 /* c */
            iaload
            iadd
            istore 19 /* i */
            aload 9 /* count */
            iload 20 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        80: iload 19 /* i */
            iload 18 /* end */
            if_icmple 62
        end local 20 // int c
        end local 19 // int i
        end local 18 // int end
        end local 17 // int lastUsed
        end local 16 // int shift
        end local 15 // int signMask
        end local 14 // int level
        end local 13 // int length
        end local 12 // int first
        81: .line 2316
      StackMap locals: int[] double[] int int int int int[] int[] int[] int[] int[] int[]
      StackMap stack:
            iload 5 /* stackPos */
            ifgt 16
        82: .line 2379
            return
        end local 11 // int[] support
        end local 10 // int[] pos
        end local 9 // int[] count
        end local 8 // int[] levelStack
        end local 7 // int[] lengthStack
        end local 6 // int[] offsetStack
        end local 5 // int stackPos
        end local 4 // boolean stable
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   83     0         perm  [I
            0   83     1            a  [D
            0   83     2         from  I
            0   83     3           to  I
            0   83     4       stable  Z
            4   83     5     stackPos  I
            5   83     6  offsetStack  [I
            6   83     7  lengthStack  [I
            7   83     8   levelStack  [I
           11   83     9        count  [I
           12   83    10          pos  [I
           15   83    11      support  [I
           17   81    12        first  I
           18   81    13       length  I
           19   81    14        level  I
           22   81    15     signMask  I
           23   81    16        shift  I
           24   27    17            i  I
           28   81    17     lastUsed  I
           29   38    18            i  I
           32   38    19            p  I
           40   43    18            i  I
           45   56    18            i  I
           46   56    19            p  I
           59   81    18          end  I
           60   81    19            i  I
           61   81    20            c  I
           66   70    21            d  I
           71   73    21            d  I
           63   79    22            t  I
           67   70    23            z  I
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      from    final
      to      final
      stable  final

  public static void parallelRadixSortIndirect(int[], double[], int, int, boolean);
    descriptor: ([I[DIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=14, args_size=5
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // int from
        start local 3 // int to
        start local 4 // boolean stable
         0: .line 2410
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2411
            aload 0 /* perm */
            aload 1 /* a */
            iload 2 /* from */
            iload 3 /* to */
            iload 4 /* stable */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSortIndirect:([I[DIIZ)V
         2: .line 2412
            return
         3: .line 2415
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 5 /* queue */
        start local 5 // java.util.concurrent.LinkedBlockingQueue queue
         4: .line 2416
            aload 5 /* queue */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 2 /* from */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 2417
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 6 /* queueSize */
        start local 6 // java.util.concurrent.atomic.AtomicInteger queueSize
         6: .line 2418
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 7 /* numberOfThreads */
        start local 7 // int numberOfThreads
         7: .line 2419
            iload 7 /* numberOfThreads */
         8: .line 2420
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
         9: .line 2419
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 8 /* executorService */
        start local 8 // java.util.concurrent.ExecutorService executorService
        10: .line 2421
            new java.util.concurrent.ExecutorCompletionService
            dup
        11: .line 2422
            aload 8 /* executorService */
        12: .line 2421
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 9 /* executorCompletionService */
        start local 9 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        13: .line 2423
            iload 4 /* stable */
            ifeq 14
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 15
      StackMap locals: int[] double[] int int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService
      StackMap stack:
        14: aconst_null
      StackMap locals:
      StackMap stack: int[]
        15: astore 10 /* support */
        start local 10 // int[] support
        16: .line 2424
            iload 7 /* numberOfThreads */
            istore 11 /* j */
        start local 11 // int j
        17: goto 19
        18: .line 2425
      StackMap locals: int[] int
      StackMap stack:
            aload 9 /* executorCompletionService */
            aload 6 /* queueSize */
            iload 7 /* numberOfThreads */
            aload 5 /* queue */
            aload 1 /* a */
            aload 0 /* perm */
            iload 4 /* stable */
            aload 10 /* support */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[IZ[I)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/doubles/DoubleArrays.lambda$1(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[IZ[I)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        19: .line 2424
      StackMap locals:
      StackMap stack:
            iload 11 /* j */
            iinc 11 /* j */ -1
            ifne 18
        end local 11 // int j
        20: .line 2500
            aconst_null
            astore 11 /* problem */
        start local 11 // java.lang.Throwable problem
        21: .line 2501
            iload 7 /* numberOfThreads */
            istore 12 /* i */
        start local 12 // int i
        22: goto 27
        23: .line 2503
      StackMap locals: int[] double[] int int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int[] java.lang.Throwable int
      StackMap stack:
            aload 9 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        24: .line 2504
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Exception
        25: astore 13 /* e */
        start local 13 // java.lang.Exception e
        26: .line 2505
            aload 13 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 11 /* problem */
        end local 13 // java.lang.Exception e
        27: .line 2501
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iinc 12 /* i */ -1
            ifne 23
        end local 12 // int i
        28: .line 2507
            aload 8 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        29: .line 2508
            aload 11 /* problem */
            ifnull 33
        30: .line 2509
            aload 11 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 31
            aload 11 /* problem */
            checkcast java.lang.RuntimeException
            goto 32
      StackMap locals:
      StackMap stack:
        31: new java.lang.RuntimeException
            dup
            aload 11 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        32: athrow
        33: .line 2510
      StackMap locals:
      StackMap stack:
            return
        end local 11 // java.lang.Throwable problem
        end local 10 // int[] support
        end local 9 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 8 // java.util.concurrent.ExecutorService executorService
        end local 7 // int numberOfThreads
        end local 6 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 5 // java.util.concurrent.LinkedBlockingQueue queue
        end local 4 // boolean stable
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   34     0                       perm  [I
            0   34     1                          a  [D
            0   34     2                       from  I
            0   34     3                         to  I
            0   34     4                     stable  Z
            4   34     5                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;>;
            6   34     6                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            7   34     7            numberOfThreads  I
           10   34     8            executorService  Ljava/util/concurrent/ExecutorService;
           13   34     9  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           16   34    10                    support  [I
           17   20    11                          j  I
           21   34    11                    problem  Ljava/lang/Throwable;
           22   28    12                          i  I
           26   27    13                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          23    24      25  Class java.lang.Exception
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      from    final
      to      final
      stable  final

  public static void parallelRadixSortIndirect(int[], double[], boolean);
    descriptor: ([I[DZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // boolean stable
         0: .line 2536
            aload 0 /* perm */
            aload 1 /* a */
            iconst_0
            aload 1 /* a */
            arraylength
            iload 2 /* stable */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelRadixSortIndirect:([I[DIIZ)V
         1: .line 2537
            return
        end local 2 // boolean stable
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    perm  [I
            0    2     1       a  [D
            0    2     2  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      stable  final

  public static void radixSort(double[], double[]);
    descriptor: ([D[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // double[] b
         0: .line 2558
            aload 0 /* a */
            aload 1 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureSameLength:([D[D)V
         1: .line 2559
            aload 0 /* a */
            aload 1 /* b */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSort:([D[DII)V
         2: .line 2560
            return
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [D
            0    3     1     b  [D
    MethodParameters:
      Name  Flags
      a     final
      b     final

  public static void radixSort(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=27, args_size=4
        start local 0 // double[] a
        start local 1 // double[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 2586
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2587
            aload 0 /* a */
            aload 1 /* b */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([D[DII)V
         2: .line 2588
            return
         3: .line 2593
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* stackPos */
        start local 4 // int stackPos
         4: .line 2594
            sipush 3826
            newarray 10
            astore 5 /* offsetStack */
        start local 5 // int[] offsetStack
         5: .line 2595
            sipush 3826
            newarray 10
            astore 6 /* lengthStack */
        start local 6 // int[] lengthStack
         6: .line 2596
            sipush 3826
            newarray 10
            astore 7 /* levelStack */
        start local 7 // int[] levelStack
         7: .line 2597
            aload 5 /* offsetStack */
            iload 4 /* stackPos */
            iload 2 /* from */
            iastore
         8: .line 2598
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iastore
         9: .line 2599
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iinc 4 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2600
            sipush 256
            newarray 10
            astore 8 /* count */
        start local 8 // int[] count
        11: .line 2601
            sipush 256
            newarray 10
            astore 9 /* pos */
        start local 9 // int[] pos
        12: .line 2602
            goto 64
        13: .line 2603
      StackMap locals: double[] double[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            aload 5 /* offsetStack */
            iinc 4 /* stackPos */ -1
            iload 4 /* stackPos */
            iaload
            istore 10 /* first */
        start local 10 // int first
        14: .line 2604
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            iaload
            istore 11 /* length */
        start local 11 // int length
        15: .line 2605
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iaload
            istore 12 /* level */
        start local 12 // int level
        16: .line 2606
            iload 12 /* level */
            bipush 8
            irem
            ifne 17
            sipush 128
            goto 18
      StackMap locals: int int int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 13 /* signMask */
        start local 13 // int signMask
        19: .line 2607
            iload 12 /* level */
            bipush 8
            if_icmpge 20
            aload 0 /* a */
            goto 21
      StackMap locals: int
      StackMap stack:
        20: aload 1 /* b */
      StackMap locals:
      StackMap stack: double[]
        21: astore 14 /* k */
        start local 14 // double[] k
        22: .line 2608
            bipush 7
            iload 12 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 15 /* shift */
        start local 15 // int shift
        23: .line 2613
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 16 /* i */
        start local 16 // int i
        24: goto 26
        25: .line 2614
      StackMap locals: double[] int int
      StackMap stack:
            aload 8 /* count */
            aload 14 /* k */
            iload 16 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 15 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        26: .line 2613
      StackMap locals:
      StackMap stack:
            iload 16 /* i */
            iinc 16 /* i */ -1
            iload 10 /* first */
            if_icmpne 25
        end local 16 // int i
        27: .line 2616
            iconst_m1
            istore 16 /* lastUsed */
        start local 16 // int lastUsed
        28: .line 2617
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        29: iload 10 /* first */
            istore 18 /* p */
        start local 18 // int p
        30: goto 35
        31: .line 2618
      StackMap locals: int int
      StackMap stack:
            aload 8 /* count */
            iload 17 /* i */
            iaload
            ifeq 33
        32: .line 2619
            iload 17 /* i */
            istore 16 /* lastUsed */
        33: .line 2620
      StackMap locals:
      StackMap stack:
            aload 9 /* pos */
            iload 17 /* i */
            iload 18 /* p */
            aload 8 /* count */
            iload 17 /* i */
            iaload
            iadd
            dup
            istore 18 /* p */
            iastore
        34: .line 2617
            iinc 17 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 17 /* i */
            sipush 256
            if_icmplt 31
        end local 18 // int p
        end local 17 // int i
        36: .line 2622
            iload 10 /* first */
            iload 11 /* length */
            iadd
            aload 8 /* count */
            iload 16 /* lastUsed */
            iaload
            isub
            istore 17 /* end */
        start local 17 // int end
        37: .line 2624
            iload 10 /* first */
            istore 18 /* i */
        start local 18 // int i
        38: iconst_m1
            istore 19 /* c */
        start local 19 // int c
        39: goto 63
        40: .line 2625
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 18 /* i */
            daload
            dstore 21 /* t */
        start local 21 // double t
        41: .line 2626
            aload 1 /* b */
            iload 18 /* i */
            daload
            dstore 23 /* u */
        start local 23 // double u
        42: .line 2627
            aload 14 /* k */
            iload 18 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 15 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            istore 19 /* c */
        43: .line 2628
            iload 18 /* i */
            iload 17 /* end */
            if_icmpge 56
        44: .line 2629
            goto 52
        start local 20 // int d
        45: .line 2630
      StackMap locals: int double double
      StackMap stack:
            aload 14 /* k */
            iload 20 /* d */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 15 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            istore 19 /* c */
        46: .line 2631
            dload 21 /* t */
            dstore 25 /* z */
        start local 25 // double z
        47: .line 2632
            aload 0 /* a */
            iload 20 /* d */
            daload
            dstore 21 /* t */
        48: .line 2633
            aload 0 /* a */
            iload 20 /* d */
            dload 25 /* z */
            dastore
        49: .line 2634
            dload 23 /* u */
            dstore 25 /* z */
        50: .line 2635
            aload 1 /* b */
            iload 20 /* d */
            daload
            dstore 23 /* u */
        51: .line 2636
            aload 1 /* b */
            iload 20 /* d */
            dload 25 /* z */
            dastore
        end local 25 // double z
        end local 20 // int d
        52: .line 2629
      StackMap locals: double[] double[] int int int int[] int[] int[] int[] int[] int int int int double[] int int int int int top double double
      StackMap stack:
            aload 9 /* pos */
            iload 19 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 20 /* d */
        start local 20 // int d
        53: iload 18 /* i */
            if_icmpgt 45
        54: .line 2638
            aload 0 /* a */
            iload 18 /* i */
            dload 21 /* t */
            dastore
        55: .line 2639
            aload 1 /* b */
            iload 18 /* i */
            dload 23 /* u */
            dastore
        end local 20 // int d
        56: .line 2641
      StackMap locals:
      StackMap stack:
            iload 12 /* level */
            bipush 15
            if_icmpge 62
            aload 8 /* count */
            iload 19 /* c */
            iaload
            iconst_1
            if_icmple 62
        57: .line 2642
            aload 8 /* count */
            iload 19 /* c */
            iaload
            sipush 1024
            if_icmpge 59
        58: .line 2643
            aload 0 /* a */
            aload 1 /* b */
            iload 18 /* i */
            iload 18 /* i */
            aload 8 /* count */
            iload 19 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([D[DII)V
            goto 62
        59: .line 2645
      StackMap locals:
      StackMap stack:
            aload 5 /* offsetStack */
            iload 4 /* stackPos */
            iload 18 /* i */
            iastore
        60: .line 2646
            aload 6 /* lengthStack */
            iload 4 /* stackPos */
            aload 8 /* count */
            iload 19 /* c */
            iaload
            iastore
        61: .line 2647
            aload 7 /* levelStack */
            iload 4 /* stackPos */
            iinc 4 /* stackPos */ 1
            iload 12 /* level */
            iconst_1
            iadd
            iastore
        end local 23 // double u
        end local 21 // double t
        62: .line 2624
      StackMap locals: double[] double[] int int int int[] int[] int[] int[] int[] int int int int double[] int int int int int
      StackMap stack:
            iload 18 /* i */
            aload 8 /* count */
            iload 19 /* c */
            iaload
            iadd
            istore 18 /* i */
            aload 8 /* count */
            iload 19 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        63: iload 18 /* i */
            iload 17 /* end */
            if_icmple 40
        end local 19 // int c
        end local 18 // int i
        end local 17 // int end
        end local 16 // int lastUsed
        end local 15 // int shift
        end local 14 // double[] k
        end local 13 // int signMask
        end local 12 // int level
        end local 11 // int length
        end local 10 // int first
        64: .line 2602
      StackMap locals: double[] double[] int int int int[] int[] int[] int[] int[]
      StackMap stack:
            iload 4 /* stackPos */
            ifgt 13
        65: .line 2652
            return
        end local 9 // int[] pos
        end local 8 // int[] count
        end local 7 // int[] levelStack
        end local 6 // int[] lengthStack
        end local 5 // int[] offsetStack
        end local 4 // int stackPos
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   66     0            a  [D
            0   66     1            b  [D
            0   66     2         from  I
            0   66     3           to  I
            4   66     4     stackPos  I
            5   66     5  offsetStack  [I
            6   66     6  lengthStack  [I
            7   66     7   levelStack  [I
           11   66     8        count  [I
           12   66     9          pos  [I
           14   64    10        first  I
           15   64    11       length  I
           16   64    12        level  I
           19   64    13     signMask  I
           22   64    14            k  [D
           23   64    15        shift  I
           24   27    16            i  I
           28   64    16     lastUsed  I
           29   36    17            i  I
           30   36    18            p  I
           37   64    17          end  I
           38   64    18            i  I
           39   64    19            c  I
           45   52    20            d  I
           53   56    20            d  I
           41   62    21            t  D
           42   62    23            u  D
           47   52    25            z  D
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void parallelRadixSort(double[], double[], int, int);
    descriptor: ([D[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // double[] a
        start local 1 // double[] b
        start local 2 // int from
        start local 3 // int to
         0: .line 2683
            iload 3 /* to */
            iload 2 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2684
            aload 0 /* a */
            aload 1 /* b */
            iload 2 /* from */
            iload 3 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
         2: .line 2685
            return
         3: .line 2688
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            aload 1 /* b */
            arraylength
            if_icmpeq 5
         4: .line 2689
            new java.lang.IllegalArgumentException
            dup
            ldc "Array size mismatch."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2691
      StackMap locals:
      StackMap stack:
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            astore 4 /* queue */
        start local 4 // java.util.concurrent.LinkedBlockingQueue queue
         6: .line 2692
            aload 4 /* queue */
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 2 /* from */
            iload 3 /* to */
            iload 2 /* from */
            isub
            iconst_0
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         7: .line 2693
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 5 /* queueSize */
        start local 5 // java.util.concurrent.atomic.AtomicInteger queueSize
         8: .line 2694
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            invokevirtual java.lang.Runtime.availableProcessors:()I
            istore 6 /* numberOfThreads */
        start local 6 // int numberOfThreads
         9: .line 2695
            iload 6 /* numberOfThreads */
        10: .line 2696
            invokestatic java.util.concurrent.Executors.defaultThreadFactory:()Ljava/util/concurrent/ThreadFactory;
        11: .line 2695
            invokestatic java.util.concurrent.Executors.newFixedThreadPool:(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
            astore 7 /* executorService */
        start local 7 // java.util.concurrent.ExecutorService executorService
        12: .line 2697
            new java.util.concurrent.ExecutorCompletionService
            dup
        13: .line 2698
            aload 7 /* executorService */
        14: .line 2697
            invokespecial java.util.concurrent.ExecutorCompletionService.<init>:(Ljava/util/concurrent/Executor;)V
            astore 8 /* executorCompletionService */
        start local 8 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        15: .line 2699
            iload 6 /* numberOfThreads */
            istore 9 /* j */
        start local 9 // int j
        16: goto 18
        17: .line 2700
      StackMap locals: double[] double[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService int
      StackMap stack:
            aload 8 /* executorCompletionService */
            aload 5 /* queueSize */
            iload 6 /* numberOfThreads */
            aload 4 /* queue */
            aload 0 /* a */
            aload 1 /* b */
            invokedynamic call(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[D)Ljava/util/concurrent/Callable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  it/unimi/dsi/fastutil/doubles/DoubleArrays.lambda$2(Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[D)Ljava/lang/Void; (6)
                  ()Ljava/lang/Void;
            invokevirtual java.util.concurrent.ExecutorCompletionService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            pop
        18: .line 2699
      StackMap locals:
      StackMap stack:
            iload 9 /* j */
            iinc 9 /* j */ -1
            ifne 17
        end local 9 // int j
        19: .line 2756
            aconst_null
            astore 9 /* problem */
        start local 9 // java.lang.Throwable problem
        20: .line 2757
            iload 6 /* numberOfThreads */
            istore 10 /* i */
        start local 10 // int i
        21: goto 26
        22: .line 2759
      StackMap locals: double[] double[] int int java.util.concurrent.LinkedBlockingQueue java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorCompletionService java.lang.Throwable int
      StackMap stack:
            aload 8 /* executorCompletionService */
            invokevirtual java.util.concurrent.ExecutorCompletionService.take:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        23: .line 2760
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Exception
        24: astore 11 /* e */
        start local 11 // java.lang.Exception e
        25: .line 2761
            aload 11 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            astore 9 /* problem */
        end local 11 // java.lang.Exception e
        26: .line 2757
      StackMap locals:
      StackMap stack:
            iload 10 /* i */
            iinc 10 /* i */ -1
            ifne 22
        end local 10 // int i
        27: .line 2763
            aload 7 /* executorService */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        28: .line 2764
            aload 9 /* problem */
            ifnull 32
        29: .line 2765
            aload 9 /* problem */
            instanceof java.lang.RuntimeException
            ifeq 30
            aload 9 /* problem */
            checkcast java.lang.RuntimeException
            goto 31
      StackMap locals:
      StackMap stack:
        30: new java.lang.RuntimeException
            dup
            aload 9 /* problem */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
        31: athrow
        32: .line 2766
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.lang.Throwable problem
        end local 8 // java.util.concurrent.ExecutorCompletionService executorCompletionService
        end local 7 // java.util.concurrent.ExecutorService executorService
        end local 6 // int numberOfThreads
        end local 5 // java.util.concurrent.atomic.AtomicInteger queueSize
        end local 4 // java.util.concurrent.LinkedBlockingQueue queue
        end local 3 // int to
        end local 2 // int from
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0   33     0                          a  [D
            0   33     1                          b  [D
            0   33     2                       from  I
            0   33     3                         to  I
            6   33     4                      queue  Ljava/util/concurrent/LinkedBlockingQueue<Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;>;
            8   33     5                  queueSize  Ljava/util/concurrent/atomic/AtomicInteger;
            9   33     6            numberOfThreads  I
           12   33     7            executorService  Ljava/util/concurrent/ExecutorService;
           15   33     8  executorCompletionService  Ljava/util/concurrent/ExecutorCompletionService<Ljava/lang/Void;>;
           16   19     9                          j  I
           20   33     9                    problem  Ljava/lang/Throwable;
           21   27    10                          i  I
           25   26    11                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      a     final
      b     final
      from  final
      to    final

  public static void parallelRadixSort(double[], double[]);
    descriptor: ([D[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // double[] a
        start local 1 // double[] b
         0: .line 2792
            aload 0 /* a */
            aload 1 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureSameLength:([D[D)V
         1: .line 2793
            aload 0 /* a */
            aload 1 /* b */
            iconst_0
            aload 0 /* a */
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.parallelRadixSort:([D[DII)V
         2: .line 2794
            return
        end local 1 // double[] b
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     a  [D
            0    3     1     b  [D
    MethodParameters:
      Name  Flags
      a     final
      b     final

  private static void insertionSortIndirect(int[], double[], double[], int, int);
    descriptor: ([I[D[DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // double[] b
        start local 3 // int from
        start local 4 // int to
         0: .line 2797
            iload 3 /* from */
            istore 5 /* i */
        start local 5 // int i
         1: goto 15
         2: .line 2798
      StackMap locals: int
      StackMap stack:
            aload 0 /* perm */
            iload 5 /* i */
            iaload
            istore 6 /* t */
        start local 6 // int t
         3: .line 2799
            iload 5 /* i */
            istore 7 /* j */
        start local 7 // int j
         4: .line 2800
            aload 0 /* perm */
            iload 7 /* j */
            iconst_1
            isub
            iaload
            istore 8 /* u */
        start local 8 // int u
         5: goto 11
         6: .line 2802
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 7 /* j */
            iload 8 /* u */
            iastore
         7: .line 2803
            iload 3 /* from */
            iload 7 /* j */
            iconst_1
            isub
            if_icmpne 10
         8: .line 2804
            iinc 7 /* j */ -1
         9: .line 2805
            goto 14
        10: .line 2801
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iinc 7 /* j */ -1
            iload 7 /* j */
            iconst_1
            isub
            iaload
            istore 8 /* u */
        11: .line 2800
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            iload 6 /* t */
            daload
            aload 1 /* a */
            iload 8 /* u */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            iflt 6
            aload 1 /* a */
            iload 6 /* t */
            daload
            aload 1 /* a */
            iload 8 /* u */
            daload
            invokestatic java.lang.Double.compare:(DD)I
            ifne 14
        12: .line 2801
            aload 2 /* b */
            iload 6 /* t */
            daload
            aload 2 /* b */
            iload 8 /* u */
            daload
            invokestatic java.lang.Double.compare:(DD)I
        13: .line 2800
            iflt 6
        end local 8 // int u
        14: .line 2808
      StackMap locals:
      StackMap stack:
            aload 0 /* perm */
            iload 7 /* j */
            iload 6 /* t */
            iastore
        end local 7 // int j
        end local 6 // int t
        15: .line 2797
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
            iload 5 /* i */
            iload 4 /* to */
            if_icmplt 2
        end local 5 // int i
        16: .line 2810
            return
        end local 4 // int to
        end local 3 // int from
        end local 2 // double[] b
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  perm  [I
            0   17     1     a  [D
            0   17     2     b  [D
            0   17     3  from  I
            0   17     4    to  I
            1   16     5     i  I
            3   15     6     t  I
            4   15     7     j  I
            5   14     8     u  I
    MethodParameters:
      Name  Flags
      perm  final
      a     final
      b     final
      from  final
      to    final

  public static void radixSortIndirect(int[], double[], double[], boolean);
    descriptor: ([I[D[DZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // double[] b
        start local 3 // boolean stable
         0: .line 2842
            aload 1 /* a */
            aload 2 /* b */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.ensureSameLength:([D[D)V
         1: .line 2843
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iconst_0
            aload 1 /* a */
            arraylength
            iload 3 /* stable */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSortIndirect:([I[D[DIIZ)V
         2: .line 2844
            return
        end local 3 // boolean stable
        end local 2 // double[] b
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    perm  [I
            0    3     1       a  [D
            0    3     2       b  [D
            0    3     3  stable  Z
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      b       final
      stable  final

  public static void radixSortIndirect(int[], double[], double[], int, int, boolean);
    descriptor: ([I[D[DIIZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=26, args_size=6
        start local 0 // int[] perm
        start local 1 // double[] a
        start local 2 // double[] b
        start local 3 // int from
        start local 4 // int to
        start local 5 // boolean stable
         0: .line 2883
            iload 4 /* to */
            iload 3 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 2884
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 3 /* from */
            iload 4 /* to */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[D[DII)V
         2: .line 2885
            return
         3: .line 2890
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* stackPos */
        start local 6 // int stackPos
         4: .line 2891
            sipush 3826
            newarray 10
            astore 7 /* offsetStack */
        start local 7 // int[] offsetStack
         5: .line 2892
            sipush 3826
            newarray 10
            astore 8 /* lengthStack */
        start local 8 // int[] lengthStack
         6: .line 2893
            sipush 3826
            newarray 10
            astore 9 /* levelStack */
        start local 9 // int[] levelStack
         7: .line 2894
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 3 /* from */
            iastore
         8: .line 2895
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iload 4 /* to */
            iload 3 /* from */
            isub
            iastore
         9: .line 2896
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iconst_0
            iastore
        10: .line 2897
            sipush 256
            newarray 10
            astore 10 /* count */
        start local 10 // int[] count
        11: .line 2898
            sipush 256
            newarray 10
            astore 11 /* pos */
        start local 11 // int[] pos
        12: .line 2899
            iload 5 /* stable */
            ifeq 13
            aload 0 /* perm */
            arraylength
            newarray 10
            goto 14
      StackMap locals: int[] double[] double[] int int int int int[] int[] int[] int[] int[]
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: int[]
        14: astore 12 /* support */
        start local 12 // int[] support
        15: .line 2900
            goto 84
        16: .line 2901
      StackMap locals: int[]
      StackMap stack:
            aload 7 /* offsetStack */
            iinc 6 /* stackPos */ -1
            iload 6 /* stackPos */
            iaload
            istore 13 /* first */
        start local 13 // int first
        17: .line 2902
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iaload
            istore 14 /* length */
        start local 14 // int length
        18: .line 2903
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iaload
            istore 15 /* level */
        start local 15 // int level
        19: .line 2904
            iload 15 /* level */
            bipush 8
            irem
            ifne 20
            sipush 128
            goto 21
      StackMap locals: int int int
      StackMap stack:
        20: iconst_0
      StackMap locals:
      StackMap stack: int
        21: istore 16 /* signMask */
        start local 16 // int signMask
        22: .line 2905
            iload 15 /* level */
            bipush 8
            if_icmpge 23
            aload 1 /* a */
            goto 24
      StackMap locals: int
      StackMap stack:
        23: aload 2 /* b */
      StackMap locals:
      StackMap stack: double[]
        24: astore 17 /* k */
        start local 17 // double[] k
        25: .line 2906
            bipush 7
            iload 15 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 18 /* shift */
        start local 18 // int shift
        26: .line 2911
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 19 /* i */
        start local 19 // int i
        27: goto 29
        28: .line 2912
      StackMap locals: double[] int int
      StackMap stack:
            aload 10 /* count */
            aload 17 /* k */
            aload 0 /* perm */
            iload 19 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        29: .line 2911
      StackMap locals:
      StackMap stack:
            iload 19 /* i */
            iinc 19 /* i */ -1
            iload 13 /* first */
            if_icmpne 28
        end local 19 // int i
        30: .line 2914
            iconst_m1
            istore 19 /* lastUsed */
        start local 19 // int lastUsed
        31: .line 2915
            iconst_0
            istore 20 /* i */
        start local 20 // int i
        32: iload 5 /* stable */
            ifeq 33
            iconst_0
            goto 34
      StackMap locals: int
      StackMap stack:
        33: iload 13 /* first */
      StackMap locals:
      StackMap stack: int
        34: istore 21 /* p */
        start local 21 // int p
        35: goto 40
        36: .line 2916
      StackMap locals: int
      StackMap stack:
            aload 10 /* count */
            iload 20 /* i */
            iaload
            ifeq 38
        37: .line 2917
            iload 20 /* i */
            istore 19 /* lastUsed */
        38: .line 2918
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 20 /* i */
            iload 21 /* p */
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iadd
            dup
            istore 21 /* p */
            iastore
        39: .line 2915
            iinc 20 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 20 /* i */
            sipush 256
            if_icmplt 36
        end local 21 // int p
        end local 20 // int i
        41: .line 2920
            iload 5 /* stable */
            ifeq 61
        42: .line 2921
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 20 /* i */
        start local 20 // int i
        43: goto 45
        44: .line 2922
      StackMap locals:
      StackMap stack:
            aload 12 /* support */
            aload 11 /* pos */
            aload 17 /* k */
            aload 0 /* perm */
            iload 20 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 0 /* perm */
            iload 20 /* i */
            iaload
            iastore
        45: .line 2921
      StackMap locals:
      StackMap stack:
            iload 20 /* i */
            iinc 20 /* i */ -1
            iload 13 /* first */
            if_icmpne 44
        end local 20 // int i
        46: .line 2923
            aload 12 /* support */
            iconst_0
            aload 0 /* perm */
            iload 13 /* first */
            iload 14 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        47: .line 2924
            iconst_0
            istore 20 /* i */
        start local 20 // int i
        48: iload 13 /* first */
            istore 21 /* p */
        start local 21 // int p
        49: goto 58
        50: .line 2925
      StackMap locals: int
      StackMap stack:
            iload 15 /* level */
            bipush 15
            if_icmpge 56
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iconst_1
            if_icmple 56
        51: .line 2926
            aload 10 /* count */
            iload 20 /* i */
            iaload
            sipush 1024
            if_icmpge 53
        52: .line 2927
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 21 /* p */
            iload 21 /* p */
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[D[DII)V
            goto 56
        53: .line 2929
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 21 /* p */
            iastore
        54: .line 2930
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iastore
        55: .line 2931
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        56: .line 2934
      StackMap locals:
      StackMap stack:
            iload 21 /* p */
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iadd
            istore 21 /* p */
        57: .line 2924
            iinc 20 /* i */ 1
      StackMap locals:
      StackMap stack:
        58: iload 20 /* i */
            sipush 256
            if_icmplt 50
        end local 21 // int p
        end local 20 // int i
        59: .line 2936
            aload 10 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        60: .line 2937
            goto 84
        61: .line 2938
      StackMap locals:
      StackMap stack:
            iload 13 /* first */
            iload 14 /* length */
            iadd
            aload 10 /* count */
            iload 19 /* lastUsed */
            iaload
            isub
            istore 20 /* end */
        start local 20 // int end
        62: .line 2940
            iload 13 /* first */
            istore 21 /* i */
        start local 21 // int i
        63: iconst_m1
            istore 22 /* c */
        start local 22 // int c
        64: goto 83
        65: .line 2941
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* perm */
            iload 21 /* i */
            iaload
            istore 24 /* t */
        start local 24 // int t
        66: .line 2942
            aload 17 /* k */
            iload 24 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            istore 22 /* c */
        67: .line 2943
            iload 21 /* i */
            iload 20 /* end */
            if_icmpge 76
        68: .line 2944
            goto 73
        start local 23 // int d
        69: .line 2945
      StackMap locals: int int
      StackMap stack:
            iload 24 /* t */
            istore 25 /* z */
        start local 25 // int z
        70: .line 2946
            aload 0 /* perm */
            iload 23 /* d */
            iaload
            istore 24 /* t */
        71: .line 2947
            aload 0 /* perm */
            iload 23 /* d */
            iload 25 /* z */
            iastore
        72: .line 2948
            aload 17 /* k */
            iload 24 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            istore 22 /* c */
        end local 25 // int z
        end local 23 // int d
        73: .line 2944
      StackMap locals: int[] double[] double[] int int int int int[] int[] int[] int[] int[] int[] int int int int double[] int int int int int top int
      StackMap stack:
            aload 11 /* pos */
            iload 22 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 23 /* d */
        start local 23 // int d
        74: iload 21 /* i */
            if_icmpgt 69
        75: .line 2950
            aload 0 /* perm */
            iload 21 /* i */
            iload 24 /* t */
            iastore
        end local 23 // int d
        76: .line 2952
      StackMap locals:
      StackMap stack:
            iload 15 /* level */
            bipush 15
            if_icmpge 82
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iconst_1
            if_icmple 82
        77: .line 2953
            aload 10 /* count */
            iload 22 /* c */
            iaload
            sipush 1024
            if_icmpge 79
        78: .line 2954
            aload 0 /* perm */
            aload 1 /* a */
            aload 2 /* b */
            iload 21 /* i */
            iload 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.insertionSortIndirect:([I[D[DII)V
            goto 82
        79: .line 2956
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 21 /* i */
            iastore
        80: .line 2957
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iastore
        81: .line 2958
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        end local 24 // int t
        82: .line 2940
      StackMap locals: int[] double[] double[] int int int int int[] int[] int[] int[] int[] int[] int int int int double[] int int int int int
      StackMap stack:
            iload 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iadd
            istore 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        83: iload 21 /* i */
            iload 20 /* end */
            if_icmple 65
        end local 22 // int c
        end local 21 // int i
        end local 20 // int end
        end local 19 // int lastUsed
        end local 18 // int shift
        end local 17 // double[] k
        end local 16 // int signMask
        end local 15 // int level
        end local 14 // int length
        end local 13 // int first
        84: .line 2900
      StackMap locals: int[] double[] double[] int int int int int[] int[] int[] int[] int[] int[]
      StackMap stack:
            iload 6 /* stackPos */
            ifgt 16
        85: .line 2964
            return
        end local 12 // int[] support
        end local 11 // int[] pos
        end local 10 // int[] count
        end local 9 // int[] levelStack
        end local 8 // int[] lengthStack
        end local 7 // int[] offsetStack
        end local 6 // int stackPos
        end local 5 // boolean stable
        end local 4 // int to
        end local 3 // int from
        end local 2 // double[] b
        end local 1 // double[] a
        end local 0 // int[] perm
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   86     0         perm  [I
            0   86     1            a  [D
            0   86     2            b  [D
            0   86     3         from  I
            0   86     4           to  I
            0   86     5       stable  Z
            4   86     6     stackPos  I
            5   86     7  offsetStack  [I
            6   86     8  lengthStack  [I
            7   86     9   levelStack  [I
           11   86    10        count  [I
           12   86    11          pos  [I
           15   86    12      support  [I
           17   84    13        first  I
           18   84    14       length  I
           19   84    15        level  I
           22   84    16     signMask  I
           25   84    17            k  [D
           26   84    18        shift  I
           27   30    19            i  I
           31   84    19     lastUsed  I
           32   41    20            i  I
           35   41    21            p  I
           43   46    20            i  I
           48   59    20            i  I
           49   59    21            p  I
           62   84    20          end  I
           63   84    21            i  I
           64   84    22            c  I
           69   73    23            d  I
           74   76    23            d  I
           66   82    24            t  I
           70   73    25            z  I
    MethodParameters:
        Name  Flags
      perm    final
      a       final
      b       final
      from    final
      to      final
      stable  final

  private static void selectionSort(double[][], int, int, int);
    descriptor: ([[DIII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=4
        start local 0 // double[][] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // int level
         0: .line 2966
            aload 0 /* a */
            arraylength
            istore 4 /* layers */
        start local 4 // int layers
         1: .line 2967
            iload 3 /* level */
            bipush 8
            idiv
            istore 5 /* firstLayer */
        start local 5 // int firstLayer
         2: .line 2968
            iload 1 /* from */
            istore 6 /* i */
        start local 6 // int i
         3: goto 26
         4: .line 2969
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* i */
            istore 7 /* m */
        start local 7 // int m
         5: .line 2970
            iload 6 /* i */
            iconst_1
            iadd
            istore 8 /* j */
        start local 8 // int j
         6: goto 17
         7: .line 2971
      StackMap locals: int int
      StackMap stack:
            iload 5 /* firstLayer */
            istore 9 /* p */
        start local 9 // int p
         8: goto 15
         9: .line 2972
      StackMap locals: int
      StackMap stack:
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 8 /* j */
            daload
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 7 /* m */
            daload
            dcmpg
            ifge 12
        10: .line 2973
            iload 8 /* j */
            istore 7 /* m */
        11: .line 2974
            goto 16
        12: .line 2975
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 8 /* j */
            daload
            aload 0 /* a */
            iload 9 /* p */
            aaload
            iload 7 /* m */
            daload
            dcmpl
            ifle 14
        13: .line 2976
            goto 16
        14: .line 2971
      StackMap locals:
      StackMap stack:
            iinc 9 /* p */ 1
      StackMap locals:
      StackMap stack:
        15: iload 9 /* p */
            iload 4 /* layers */
            if_icmplt 9
        end local 9 // int p
        16: .line 2970
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* j */
            iload 2 /* to */
            if_icmplt 7
        end local 8 // int j
        18: .line 2979
            iload 7 /* m */
            iload 6 /* i */
            if_icmpeq 25
        19: .line 2980
            iload 4 /* layers */
            istore 8 /* p */
        start local 8 // int p
        20: goto 24
        21: .line 2981
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 6 /* i */
            daload
            dstore 9 /* u */
        start local 9 // double u
        22: .line 2982
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 6 /* i */
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 7 /* m */
            daload
            dastore
        23: .line 2983
            aload 0 /* a */
            iload 8 /* p */
            aaload
            iload 7 /* m */
            dload 9 /* u */
            dastore
        end local 9 // double u
        24: .line 2980
      StackMap locals:
      StackMap stack:
            iload 8 /* p */
            iinc 8 /* p */ -1
            ifne 21
        end local 8 // int p
        end local 7 // int m
        25: .line 2968
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 6 /* i */
            iload 2 /* to */
            iconst_1
            isub
            if_icmplt 4
        end local 6 // int i
        27: .line 2987
            return
        end local 5 // int firstLayer
        end local 4 // int layers
        end local 3 // int level
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[][] a
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0           a  [[D
            0   28     1        from  I
            0   28     2          to  I
            0   28     3       level  I
            1   28     4      layers  I
            2   28     5  firstLayer  I
            3   27     6           i  I
            5   25     7           m  I
            6   18     8           j  I
            8   16     9           p  I
           20   25     8           p  I
           22   24     9           u  D
    MethodParameters:
       Name  Flags
      a      final
      from   final
      to     final
      level  final

  public static void radixSort(double[][]);
    descriptor: ([[D)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // double[][] a
         0: .line 3006
            aload 0 /* a */
            iconst_0
            aload 0 /* a */
            iconst_0
            aaload
            arraylength
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSort:([[DII)V
         1: .line 3007
            return
        end local 0 // double[][] a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     a  [[D
    MethodParameters:
      Name  Flags
      a     final

  public static void radixSort(double[][], int, int);
    descriptor: ([[DII)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=27, args_size=3
        start local 0 // double[][] a
        start local 1 // int from
        start local 2 // int to
         0: .line 3030
            iload 2 /* to */
            iload 1 /* from */
            isub
            sipush 1024
            if_icmpge 3
         1: .line 3031
            aload 0 /* a */
            iload 1 /* from */
            iload 2 /* to */
            iconst_0
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([[DIII)V
         2: .line 3032
            return
         3: .line 3034
      StackMap locals:
      StackMap stack:
            aload 0 /* a */
            arraylength
            istore 3 /* layers */
        start local 3 // int layers
         4: .line 3035
            bipush 8
            iload 3 /* layers */
            imul
            iconst_1
            isub
            istore 4 /* maxLevel */
        start local 4 // int maxLevel
         5: .line 3036
            iload 3 /* layers */
            istore 5 /* p */
        start local 5 // int p
         6: aload 0 /* a */
            iconst_0
            aaload
            arraylength
            istore 6 /* l */
        start local 6 // int l
         7: goto 12
         8: .line 3037
      StackMap locals: double[][] int int int int int int
      StackMap stack:
            aload 0 /* a */
            iload 5 /* p */
            aaload
            arraylength
            iload 6 /* l */
            if_icmpeq 12
         9: .line 3038
            new java.lang.IllegalArgumentException
            dup
        10: .line 3039
            new java.lang.StringBuilder
            dup
            ldc "The array of index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* p */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " has not the same length of the array of index 0."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 3038
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 3036
      StackMap locals:
      StackMap stack:
            iload 5 /* p */
            iinc 5 /* p */ -1
            ifne 8
        end local 6 // int l
        end local 5 // int p
        13: .line 3040
            sipush 255
            iload 3 /* layers */
            bipush 8
            imul
            iconst_1
            isub
            imul
            iconst_1
            iadd
            istore 5 /* stackSize */
        start local 5 // int stackSize
        14: .line 3041
            iconst_0
            istore 6 /* stackPos */
        start local 6 // int stackPos
        15: .line 3042
            iload 5 /* stackSize */
            newarray 10
            astore 7 /* offsetStack */
        start local 7 // int[] offsetStack
        16: .line 3043
            iload 5 /* stackSize */
            newarray 10
            astore 8 /* lengthStack */
        start local 8 // int[] lengthStack
        17: .line 3044
            iload 5 /* stackSize */
            newarray 10
            astore 9 /* levelStack */
        start local 9 // int[] levelStack
        18: .line 3045
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 1 /* from */
            iastore
        19: .line 3046
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iload 2 /* to */
            iload 1 /* from */
            isub
            iastore
        20: .line 3047
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iconst_0
            iastore
        21: .line 3048
            sipush 256
            newarray 10
            astore 10 /* count */
        start local 10 // int[] count
        22: .line 3049
            sipush 256
            newarray 10
            astore 11 /* pos */
        start local 11 // int[] pos
        23: .line 3050
            iload 3 /* layers */
            newarray 7
            astore 12 /* t */
        start local 12 // double[] t
        24: .line 3051
            goto 78
        25: .line 3052
      StackMap locals: double[][] int int int int int int int[] int[] int[] int[] int[] double[]
      StackMap stack:
            aload 7 /* offsetStack */
            iinc 6 /* stackPos */ -1
            iload 6 /* stackPos */
            iaload
            istore 13 /* first */
        start local 13 // int first
        26: .line 3053
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            iaload
            istore 14 /* length */
        start local 14 // int length
        27: .line 3054
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iaload
            istore 15 /* level */
        start local 15 // int level
        28: .line 3055
            iload 15 /* level */
            bipush 8
            irem
            ifne 29
            sipush 128
            goto 30
      StackMap locals: int int int
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: istore 16 /* signMask */
        start local 16 // int signMask
        31: .line 3056
            aload 0 /* a */
            iload 15 /* level */
            bipush 8
            idiv
            aaload
            astore 17 /* k */
        start local 17 // double[] k
        32: .line 3057
            bipush 7
            iload 15 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 18 /* shift */
        start local 18 // int shift
        33: .line 3062
            iload 13 /* first */
            iload 14 /* length */
            iadd
            istore 19 /* i */
        start local 19 // int i
        34: goto 36
        35: .line 3063
      StackMap locals: double[][] int int int int int int int[] int[] int[] int[] int[] double[] int int int int double[] int int
      StackMap stack:
            aload 10 /* count */
            aload 17 /* k */
            iload 19 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        36: .line 3062
      StackMap locals:
      StackMap stack:
            iload 19 /* i */
            iinc 19 /* i */ -1
            iload 13 /* first */
            if_icmpne 35
        end local 19 // int i
        37: .line 3065
            iconst_m1
            istore 19 /* lastUsed */
        start local 19 // int lastUsed
        38: .line 3066
            iconst_0
            istore 20 /* i */
        start local 20 // int i
        39: iload 13 /* first */
            istore 21 /* p */
        start local 21 // int p
        40: goto 45
        41: .line 3067
      StackMap locals: int int
      StackMap stack:
            aload 10 /* count */
            iload 20 /* i */
            iaload
            ifeq 43
        42: .line 3068
            iload 20 /* i */
            istore 19 /* lastUsed */
        43: .line 3069
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 20 /* i */
            iload 21 /* p */
            aload 10 /* count */
            iload 20 /* i */
            iaload
            iadd
            dup
            istore 21 /* p */
            iastore
        44: .line 3066
            iinc 20 /* i */ 1
      StackMap locals:
      StackMap stack:
        45: iload 20 /* i */
            sipush 256
            if_icmplt 41
        end local 21 // int p
        end local 20 // int i
        46: .line 3071
            iload 13 /* first */
            iload 14 /* length */
            iadd
            aload 10 /* count */
            iload 19 /* lastUsed */
            iaload
            isub
            istore 20 /* end */
        start local 20 // int end
        47: .line 3073
            iload 13 /* first */
            istore 21 /* i */
        start local 21 // int i
        48: iconst_m1
            istore 22 /* c */
        start local 22 // int c
        49: goto 77
        50: .line 3074
      StackMap locals: int
      StackMap stack:
            iload 3 /* layers */
            istore 24 /* p */
        start local 24 // int p
        51: goto 53
        52: .line 3075
      StackMap locals: double[][] int int int int int int int[] int[] int[] int[] int[] double[] int int int int double[] int int int int int top int
      StackMap stack:
            aload 12 /* t */
            iload 24 /* p */
            aload 0 /* a */
            iload 24 /* p */
            aaload
            iload 21 /* i */
            daload
            dastore
        53: .line 3074
      StackMap locals:
      StackMap stack:
            iload 24 /* p */
            iinc 24 /* p */ -1
            ifne 52
        end local 24 // int p
        54: .line 3076
            aload 17 /* k */
            iload 21 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            istore 22 /* c */
        55: .line 3077
            iload 21 /* i */
            iload 20 /* end */
            if_icmpge 70
        56: .line 3078
            goto 64
        start local 23 // int d
        57: .line 3079
      StackMap locals: double[][] int int int int int int int[] int[] int[] int[] int[] double[] int int int int double[] int int int int int int
      StackMap stack:
            aload 17 /* k */
            iload 23 /* d */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 18 /* shift */
            lushr
            ldc 255
            land
            iload 16 /* signMask */
            i2l
            lxor
            l2i
            istore 22 /* c */
        58: .line 3080
            iload 3 /* layers */
            istore 24 /* p */
        start local 24 // int p
        59: goto 63
        60: .line 3081
      StackMap locals: int
      StackMap stack:
            aload 12 /* t */
            iload 24 /* p */
            daload
            dstore 25 /* u */
        start local 25 // double u
        61: .line 3082
            aload 12 /* t */
            iload 24 /* p */
            aload 0 /* a */
            iload 24 /* p */
            aaload
            iload 23 /* d */
            daload
            dastore
        62: .line 3083
            aload 0 /* a */
            iload 24 /* p */
            aaload
            iload 23 /* d */
            dload 25 /* u */
            dastore
        end local 25 // double u
        63: .line 3080
      StackMap locals:
      StackMap stack:
            iload 24 /* p */
            iinc 24 /* p */ -1
            ifne 60
        end local 24 // int p
        end local 23 // int d
        64: .line 3078
      StackMap locals:
      StackMap stack:
            aload 11 /* pos */
            iload 22 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 23 /* d */
        start local 23 // int d
        65: iload 21 /* i */
            if_icmpgt 57
        66: .line 3086
            iload 3 /* layers */
            istore 24 /* p */
        start local 24 // int p
        67: goto 69
        68: .line 3087
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 24 /* p */
            aaload
            iload 21 /* i */
            aload 12 /* t */
            iload 24 /* p */
            daload
            dastore
        69: .line 3086
      StackMap locals:
      StackMap stack:
            iload 24 /* p */
            iinc 24 /* p */ -1
            ifne 68
        end local 24 // int p
        end local 23 // int d
        70: .line 3089
      StackMap locals:
      StackMap stack:
            iload 15 /* level */
            iload 4 /* maxLevel */
            if_icmpge 76
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iconst_1
            if_icmple 76
        71: .line 3090
            aload 10 /* count */
            iload 22 /* c */
            iaload
            sipush 1024
            if_icmpge 73
        72: .line 3091
            aload 0 /* a */
            iload 21 /* i */
            iload 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iadd
            iload 15 /* level */
            iconst_1
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.selectionSort:([[DIII)V
            goto 76
        73: .line 3093
      StackMap locals:
      StackMap stack:
            aload 7 /* offsetStack */
            iload 6 /* stackPos */
            iload 21 /* i */
            iastore
        74: .line 3094
            aload 8 /* lengthStack */
            iload 6 /* stackPos */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iastore
        75: .line 3095
            aload 9 /* levelStack */
            iload 6 /* stackPos */
            iinc 6 /* stackPos */ 1
            iload 15 /* level */
            iconst_1
            iadd
            iastore
        76: .line 3073
      StackMap locals:
      StackMap stack:
            iload 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iaload
            iadd
            istore 21 /* i */
            aload 10 /* count */
            iload 22 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        77: iload 21 /* i */
            iload 20 /* end */
            if_icmple 50
        end local 22 // int c
        end local 21 // int i
        end local 20 // int end
        end local 19 // int lastUsed
        end local 18 // int shift
        end local 17 // double[] k
        end local 16 // int signMask
        end local 15 // int level
        end local 14 // int length
        end local 13 // int first
        78: .line 3051
      StackMap locals: double[][] int int int int int int int[] int[] int[] int[] int[] double[]
      StackMap stack:
            iload 6 /* stackPos */
            ifgt 25
        79: .line 3100
            return
        end local 12 // double[] t
        end local 11 // int[] pos
        end local 10 // int[] count
        end local 9 // int[] levelStack
        end local 8 // int[] lengthStack
        end local 7 // int[] offsetStack
        end local 6 // int stackPos
        end local 5 // int stackSize
        end local 4 // int maxLevel
        end local 3 // int layers
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[][] a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   80     0            a  [[D
            0   80     1         from  I
            0   80     2           to  I
            4   80     3       layers  I
            5   80     4     maxLevel  I
            6   13     5            p  I
            7   13     6            l  I
           14   80     5    stackSize  I
           15   80     6     stackPos  I
           16   80     7  offsetStack  [I
           17   80     8  lengthStack  [I
           18   80     9   levelStack  [I
           22   80    10        count  [I
           23   80    11          pos  [I
           24   80    12            t  [D
           26   78    13        first  I
           27   78    14       length  I
           28   78    15        level  I
           31   78    16     signMask  I
           32   78    17            k  [D
           33   78    18        shift  I
           34   37    19            i  I
           38   78    19     lastUsed  I
           39   46    20            i  I
           40   46    21            p  I
           47   78    20          end  I
           48   78    21            i  I
           49   78    22            c  I
           57   64    23            d  I
           65   70    23            d  I
           51   54    24            p  I
           59   64    24            p  I
           61   63    25            u  D
           67   70    24            p  I
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  public static double[] shuffle(double[], int, int, java.util.Random);
    descriptor: ([DIILjava/util/Random;)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
        start local 3 // java.util.Random random
         0: .line 3116
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 4 /* i */
        start local 4 // int i
         1: goto 6
         2: .line 3117
      StackMap locals: int
      StackMap stack:
            aload 3 /* random */
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual java.util.Random.nextInt:(I)I
            istore 5 /* p */
        start local 5 // int p
         3: .line 3118
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            daload
            dstore 6 /* t */
        start local 6 // double t
         4: .line 3119
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* p */
            iadd
            daload
            dastore
         5: .line 3120
            aload 0 /* a */
            iload 1 /* from */
            iload 5 /* p */
            iadd
            dload 6 /* t */
            dastore
        end local 6 // double t
        end local 5 // int p
         6: .line 3116
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iinc 4 /* i */ -1
            ifne 2
        end local 4 // int i
         7: .line 3122
            aload 0 /* a */
            areturn
        end local 3 // java.util.Random random
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [D
            0    8     1    from  I
            0    8     2      to  I
            0    8     3  random  Ljava/util/Random;
            1    7     4       i  I
            3    6     5       p  I
            4    6     6       t  D
    MethodParameters:
        Name  Flags
      a       final
      from    final
      to      final
      random  final

  public static double[] shuffle(double[], java.util.Random);
    descriptor: ([DLjava/util/Random;)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // double[] a
        start local 1 // java.util.Random random
         0: .line 3135
            aload 0 /* a */
            arraylength
            istore 2 /* i */
        start local 2 // int i
         1: goto 6
         2: .line 3136
      StackMap locals: int
      StackMap stack:
            aload 1 /* random */
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.util.Random.nextInt:(I)I
            istore 3 /* p */
        start local 3 // int p
         3: .line 3137
            aload 0 /* a */
            iload 2 /* i */
            daload
            dstore 4 /* t */
        start local 4 // double t
         4: .line 3138
            aload 0 /* a */
            iload 2 /* i */
            aload 0 /* a */
            iload 3 /* p */
            daload
            dastore
         5: .line 3139
            aload 0 /* a */
            iload 3 /* p */
            dload 4 /* t */
            dastore
        end local 4 // double t
        end local 3 // int p
         6: .line 3135
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 2
        end local 2 // int i
         7: .line 3141
            aload 0 /* a */
            areturn
        end local 1 // java.util.Random random
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [D
            0    8     1  random  Ljava/util/Random;
            1    7     2       i  I
            3    6     3       p  I
            4    6     4       t  D
    MethodParameters:
        Name  Flags
      a       final
      random  final

  public static double[] reverse(double[]);
    descriptor: ([D)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // double[] a
         0: .line 3151
            aload 0 /* a */
            arraylength
            istore 1 /* length */
        start local 1 // int length
         1: .line 3152
            iload 1 /* length */
            iconst_2
            idiv
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 3153
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* length */
            iload 2 /* i */
            isub
            iconst_1
            isub
            daload
            dstore 3 /* t */
        start local 3 // double t
         4: .line 3154
            aload 0 /* a */
            iload 1 /* length */
            iload 2 /* i */
            isub
            iconst_1
            isub
            aload 0 /* a */
            iload 2 /* i */
            daload
            dastore
         5: .line 3155
            aload 0 /* a */
            iload 2 /* i */
            dload 3 /* t */
            dastore
        end local 3 // double t
         6: .line 3152
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            iinc 2 /* i */ -1
            ifne 3
        end local 2 // int i
         7: .line 3157
            aload 0 /* a */
            areturn
        end local 1 // int length
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [D
            1    8     1  length  I
            2    7     2       i  I
            4    6     3       t  D
    MethodParameters:
      Name  Flags
      a     final

  public static double[] reverse(double[], int, int);
    descriptor: ([DII)[D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // double[] a
        start local 1 // int from
        start local 2 // int to
         0: .line 3171
            iload 2 /* to */
            iload 1 /* from */
            isub
            istore 3 /* length */
        start local 3 // int length
         1: .line 3172
            iload 3 /* length */
            iconst_2
            idiv
            istore 4 /* i */
        start local 4 // int i
         2: goto 6
         3: .line 3173
      StackMap locals: int int
      StackMap stack:
            aload 0 /* a */
            iload 1 /* from */
            iload 3 /* length */
            iadd
            iload 4 /* i */
            isub
            iconst_1
            isub
            daload
            dstore 5 /* t */
        start local 5 // double t
         4: .line 3174
            aload 0 /* a */
            iload 1 /* from */
            iload 3 /* length */
            iadd
            iload 4 /* i */
            isub
            iconst_1
            isub
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            daload
            dastore
         5: .line 3175
            aload 0 /* a */
            iload 1 /* from */
            iload 4 /* i */
            iadd
            dload 5 /* t */
            dastore
        end local 5 // double t
         6: .line 3172
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iinc 4 /* i */ -1
            ifne 3
        end local 4 // int i
         7: .line 3177
            aload 0 /* a */
            areturn
        end local 3 // int length
        end local 2 // int to
        end local 1 // int from
        end local 0 // double[] a
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0       a  [D
            0    8     1    from  I
            0    8     2      to  I
            1    8     3  length  I
            2    7     4       i  I
            4    6     5       t  D
    MethodParameters:
      Name  Flags
      a     final
      from  final
      to    final

  private static java.lang.Void lambda$0(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, double[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=21, args_size=4
         0: .line 2156
            sipush 256
            newarray 10
            astore 4 /* count */
        start local 4 // int[] count
         1: .line 2157
            sipush 256
            newarray 10
            astore 5 /* pos */
        start local 5 // int[] pos
         2: .line 2159
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2160
            iload 1
            istore 6 /* i */
        start local 6 // int i
         4: goto 6
         5: .line 2161
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2160
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iinc 6 /* i */ -1
            ifne 5
        end local 6 // int i
         7: .line 2162
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            astore 6 /* segment */
        start local 6 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
         8: .line 2163
            aload 6 /* segment */
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            if_acmpne 10
         9: .line 2164
            aconst_null
            areturn
        10: .line 2165
      StackMap locals: it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
      StackMap stack:
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.offset:I
            istore 7 /* first */
        start local 7 // int first
        11: .line 2166
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.length:I
            istore 8 /* length */
        start local 8 // int length
        12: .line 2167
            aload 6 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.level:I
            istore 9 /* level */
        start local 9 // int level
        13: .line 2168
            iload 9 /* level */
            bipush 8
            irem
            ifne 14
            sipush 128
            goto 15
      StackMap locals: int int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 10 /* signMask */
        start local 10 // int signMask
        16: .line 2169
            bipush 7
            iload 9 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 11 /* shift */
        start local 11 // int shift
        17: .line 2177
            iload 7 /* first */
            iload 8 /* length */
            iadd
            istore 12 /* i */
        start local 12 // int i
        18: goto 20
        19: .line 2178
      StackMap locals: int int int
      StackMap stack:
            aload 4 /* count */
            aload 3
            iload 12 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 11 /* shift */
            lushr
            ldc 255
            land
            iload 10 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        20: .line 2177
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            iinc 12 /* i */ -1
            iload 7 /* first */
            if_icmpne 19
        end local 12 // int i
        21: .line 2180
            iconst_m1
            istore 12 /* lastUsed */
        start local 12 // int lastUsed
        22: .line 2181
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        23: iload 7 /* first */
            istore 14 /* p */
        start local 14 // int p
        24: goto 29
        25: .line 2182
      StackMap locals: int int
      StackMap stack:
            aload 4 /* count */
            iload 13 /* i */
            iaload
            ifeq 27
        26: .line 2183
            iload 13 /* i */
            istore 12 /* lastUsed */
        27: .line 2184
      StackMap locals:
      StackMap stack:
            aload 5 /* pos */
            iload 13 /* i */
            iload 14 /* p */
            aload 4 /* count */
            iload 13 /* i */
            iaload
            iadd
            dup
            istore 14 /* p */
            iastore
        28: .line 2181
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 13 /* i */
            sipush 256
            if_icmplt 25
        end local 14 // int p
        end local 13 // int i
        30: .line 2186
            iload 7 /* first */
            iload 8 /* length */
            iadd
            aload 4 /* count */
            iload 12 /* lastUsed */
            iaload
            isub
            istore 13 /* end */
        start local 13 // int end
        31: .line 2188
            iload 7 /* first */
            istore 14 /* i */
        start local 14 // int i
        32: iconst_m1
            istore 15 /* c */
        start local 15 // int c
        33: goto 51
        34: .line 2189
      StackMap locals: int
      StackMap stack:
            aload 3
            iload 14 /* i */
            daload
            dstore 17 /* t */
        start local 17 // double t
        35: .line 2190
            dload 17 /* t */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 11 /* shift */
            lushr
            ldc 255
            land
            iload 10 /* signMask */
            i2l
            lxor
            l2i
            istore 15 /* c */
        36: .line 2191
            iload 14 /* i */
            iload 13 /* end */
            if_icmpge 45
        37: .line 2192
            goto 42
        start local 16 // int d
        38: .line 2193
      StackMap locals: int double
      StackMap stack:
            dload 17 /* t */
            dstore 19 /* z */
        start local 19 // double z
        39: .line 2194
            aload 3
            iload 16 /* d */
            daload
            dstore 17 /* t */
        40: .line 2195
            aload 3
            iload 16 /* d */
            dload 19 /* z */
            dastore
        41: .line 2196
            dload 17 /* t */
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 11 /* shift */
            lushr
            ldc 255
            land
            iload 10 /* signMask */
            i2l
            lxor
            l2i
            istore 15 /* c */
        end local 19 // double z
        end local 16 // int d
        42: .line 2192
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int int int int int int top double
      StackMap stack:
            aload 5 /* pos */
            iload 15 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 16 /* d */
        start local 16 // int d
        43: iload 14 /* i */
            if_icmpgt 38
        44: .line 2198
            aload 3
            iload 14 /* i */
            dload 17 /* t */
            dastore
        end local 16 // int d
        45: .line 2200
      StackMap locals:
      StackMap stack:
            iload 9 /* level */
            bipush 7
            if_icmpge 50
            aload 4 /* count */
            iload 15 /* c */
            iaload
            iconst_1
            if_icmple 50
        46: .line 2201
            aload 4 /* count */
            iload 15 /* c */
            iaload
            sipush 1024
            if_icmpge 48
        47: .line 2202
            aload 3
            iload 14 /* i */
            iload 14 /* i */
            aload 4 /* count */
            iload 15 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([DII)V
            goto 50
        48: .line 2204
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        49: .line 2205
            aload 2
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 14 /* i */
            aload 4 /* count */
            iload 15 /* c */
            iaload
            iload 9 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // double t
        50: .line 2188
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int int int int int int
      StackMap stack:
            iload 14 /* i */
            aload 4 /* count */
            iload 15 /* c */
            iaload
            iadd
            istore 14 /* i */
            aload 4 /* count */
            iload 15 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        51: iload 14 /* i */
            iload 13 /* end */
            if_icmple 34
        end local 15 // int c
        end local 14 // int i
        52: .line 2209
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 13 // int end
        end local 12 // int lastUsed
        end local 11 // int shift
        end local 10 // int signMask
        end local 9 // int level
        end local 8 // int length
        end local 7 // int first
        end local 6 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
        53: .line 2158
            goto 2
        end local 5 // int[] pos
        end local 4 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   54     4     count  [I
            2   54     5       pos  [I
            4    7     6         i  I
            8   53     6   segment  Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
           11   53     7     first  I
           12   53     8    length  I
           13   53     9     level  I
           16   53    10  signMask  I
           17   53    11     shift  I
           18   21    12         i  I
           22   53    12  lastUsed  I
           23   30    13         i  I
           24   30    14         p  I
           31   53    13       end  I
           32   52    14         i  I
           33   52    15         c  I
           38   42    16         d  I
           43   45    16         d  I
           35   50    17         t  D
           39   42    19         z  D
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$1(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, double[], int[], boolean, int[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[IZ[I)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=22, args_size=7
         0: .line 2426
            sipush 256
            newarray 10
            astore 7 /* count */
        start local 7 // int[] count
         1: .line 2427
            sipush 256
            newarray 10
            astore 8 /* pos */
        start local 8 // int[] pos
         2: .line 2429
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2430
            iload 1
            istore 9 /* i */
        start local 9 // int i
         4: goto 6
         5: .line 2431
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2430
      StackMap locals:
      StackMap stack:
            iload 9 /* i */
            iinc 9 /* i */ -1
            ifne 5
        end local 9 // int i
         7: .line 2432
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            astore 9 /* segment */
        start local 9 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
         8: .line 2433
            aload 9 /* segment */
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            if_acmpne 10
         9: .line 2434
            aconst_null
            areturn
        10: .line 2435
      StackMap locals: it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
      StackMap stack:
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.offset:I
            istore 10 /* first */
        start local 10 // int first
        11: .line 2436
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.length:I
            istore 11 /* length */
        start local 11 // int length
        12: .line 2437
            aload 9 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.level:I
            istore 12 /* level */
        start local 12 // int level
        13: .line 2438
            iload 12 /* level */
            bipush 8
            irem
            ifne 14
            sipush 128
            goto 15
      StackMap locals: int int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 13 /* signMask */
        start local 13 // int signMask
        16: .line 2439
            bipush 7
            iload 12 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 14 /* shift */
        start local 14 // int shift
        17: .line 2447
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 15 /* i */
        start local 15 // int i
        18: goto 20
        19: .line 2448
      StackMap locals: int int int
      StackMap stack:
            aload 7 /* count */
            aload 3
            aload 4
            iload 15 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 14 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        20: .line 2447
      StackMap locals:
      StackMap stack:
            iload 15 /* i */
            iinc 15 /* i */ -1
            iload 10 /* first */
            if_icmpne 19
        end local 15 // int i
        21: .line 2450
            iconst_m1
            istore 15 /* lastUsed */
        start local 15 // int lastUsed
        22: .line 2451
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        23: iload 10 /* first */
            istore 17 /* p */
        start local 17 // int p
        24: goto 29
        25: .line 2452
      StackMap locals: int int
      StackMap stack:
            aload 7 /* count */
            iload 16 /* i */
            iaload
            ifeq 27
        26: .line 2453
            iload 16 /* i */
            istore 15 /* lastUsed */
        27: .line 2454
      StackMap locals:
      StackMap stack:
            aload 8 /* pos */
            iload 16 /* i */
            iload 17 /* p */
            aload 7 /* count */
            iload 16 /* i */
            iaload
            iadd
            dup
            istore 17 /* p */
            iastore
        28: .line 2451
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 16 /* i */
            sipush 256
            if_icmplt 25
        end local 17 // int p
        end local 16 // int i
        30: .line 2456
            iload 5
            ifeq 49
        31: .line 2457
            iload 10 /* first */
            iload 11 /* length */
            iadd
            istore 16 /* i */
        start local 16 // int i
        32: goto 34
        33: .line 2458
      StackMap locals:
      StackMap stack:
            aload 6
            aload 8 /* pos */
            aload 3
            aload 4
            iload 16 /* i */
            iaload
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 14 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            aload 4
            iload 16 /* i */
            iaload
            iastore
        34: .line 2457
      StackMap locals:
      StackMap stack:
            iload 16 /* i */
            iinc 16 /* i */ -1
            iload 10 /* first */
            if_icmpne 33
        end local 16 // int i
        35: .line 2459
            aload 6
            iload 10 /* first */
            aload 4
            iload 10 /* first */
            iload 11 /* length */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        36: .line 2460
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        37: iload 10 /* first */
            istore 17 /* p */
        start local 17 // int p
        38: goto 46
        39: .line 2461
      StackMap locals: int
      StackMap stack:
            iload 12 /* level */
            bipush 7
            if_icmpge 44
            aload 7 /* count */
            iload 16 /* i */
            iaload
            iconst_1
            if_icmple 44
        40: .line 2462
            aload 7 /* count */
            iload 16 /* i */
            iaload
            sipush 1024
            if_icmpge 42
        41: .line 2463
            aload 4
            aload 3
            iload 17 /* p */
            iload 17 /* p */
            aload 7 /* count */
            iload 16 /* i */
            iaload
            iadd
            iload 5
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSortIndirect:([I[DIIZ)V
            goto 44
        42: .line 2465
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        43: .line 2466
            aload 2
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 17 /* p */
            aload 7 /* count */
            iload 16 /* i */
            iaload
            iload 12 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        44: .line 2469
      StackMap locals:
      StackMap stack:
            iload 17 /* p */
            aload 7 /* count */
            iload 16 /* i */
            iaload
            iadd
            istore 17 /* p */
        45: .line 2460
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        46: iload 16 /* i */
            iload 15 /* lastUsed */
            if_icmple 39
        end local 17 // int p
        end local 16 // int i
        47: .line 2471
            aload 7 /* count */
            iconst_0
            invokestatic java.util.Arrays.fill:([II)V
        48: .line 2472
            goto 71
        49: .line 2473
      StackMap locals:
      StackMap stack:
            iload 10 /* first */
            iload 11 /* length */
            iadd
            aload 7 /* count */
            iload 15 /* lastUsed */
            iaload
            isub
            istore 16 /* end */
        start local 16 // int end
        50: .line 2475
            iload 10 /* first */
            istore 17 /* i */
        start local 17 // int i
        51: iconst_m1
            istore 18 /* c */
        start local 18 // int c
        52: goto 70
        53: .line 2476
      StackMap locals: int int int
      StackMap stack:
            aload 4
            iload 17 /* i */
            iaload
            istore 20 /* t */
        start local 20 // int t
        54: .line 2477
            aload 3
            iload 20 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 14 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            istore 18 /* c */
        55: .line 2478
            iload 17 /* i */
            iload 16 /* end */
            if_icmpge 64
        56: .line 2479
            goto 61
        start local 19 // int d
        57: .line 2480
      StackMap locals: int int
      StackMap stack:
            iload 20 /* t */
            istore 21 /* z */
        start local 21 // int z
        58: .line 2481
            aload 4
            iload 19 /* d */
            iaload
            istore 20 /* t */
        59: .line 2482
            aload 4
            iload 19 /* d */
            iload 21 /* z */
            iastore
        60: .line 2483
            aload 3
            iload 20 /* t */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 14 /* shift */
            lushr
            ldc 255
            land
            iload 13 /* signMask */
            i2l
            lxor
            l2i
            istore 18 /* c */
        end local 21 // int z
        end local 19 // int d
        61: .line 2479
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] int[] int int[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int int int int int int top int
      StackMap stack:
            aload 8 /* pos */
            iload 18 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 19 /* d */
        start local 19 // int d
        62: iload 17 /* i */
            if_icmpgt 57
        63: .line 2485
            aload 4
            iload 17 /* i */
            iload 20 /* t */
            iastore
        end local 19 // int d
        64: .line 2487
      StackMap locals:
      StackMap stack:
            iload 12 /* level */
            bipush 7
            if_icmpge 69
            aload 7 /* count */
            iload 18 /* c */
            iaload
            iconst_1
            if_icmple 69
        65: .line 2488
            aload 7 /* count */
            iload 18 /* c */
            iaload
            sipush 1024
            if_icmpge 67
        66: .line 2489
            aload 4
            aload 3
            iload 17 /* i */
            iload 17 /* i */
            aload 7 /* count */
            iload 18 /* c */
            iaload
            iadd
            iload 5
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.radixSortIndirect:([I[DIIZ)V
            goto 69
        67: .line 2491
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        68: .line 2492
            aload 2
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 17 /* i */
            aload 7 /* count */
            iload 18 /* c */
            iaload
            iload 12 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 20 // int t
        69: .line 2475
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] int[] int int[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int int int int int int
      StackMap stack:
            iload 17 /* i */
            aload 7 /* count */
            iload 18 /* c */
            iaload
            iadd
            istore 17 /* i */
            aload 7 /* count */
            iload 18 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        70: iload 17 /* i */
            iload 16 /* end */
            if_icmple 53
        end local 18 // int c
        end local 17 // int i
        end local 16 // int end
        71: .line 2497
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 15 // int lastUsed
        end local 14 // int shift
        end local 13 // int signMask
        end local 12 // int level
        end local 11 // int length
        end local 10 // int first
        end local 9 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
        72: .line 2428
            goto 2
        end local 8 // int[] pos
        end local 7 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   73     7     count  [I
            2   73     8       pos  [I
            4    7     9         i  I
            8   72     9   segment  Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
           11   72    10     first  I
           12   72    11    length  I
           13   72    12     level  I
           16   72    13  signMask  I
           17   72    14     shift  I
           18   21    15         i  I
           22   72    15  lastUsed  I
           23   30    16         i  I
           24   30    17         p  I
           32   35    16         i  I
           37   47    16         i  I
           38   47    17         p  I
           50   71    16       end  I
           51   71    17         i  I
           52   71    18         c  I
           57   61    19         d  I
           62   64    19         d  I
           54   69    20         t  I
           58   61    21         z  I
    Exceptions:
      throws java.lang.Exception

  private static java.lang.Void lambda$2(java.util.concurrent.atomic.AtomicInteger, int, java.util.concurrent.LinkedBlockingQueue, double[], double[]);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;ILjava/util/concurrent/LinkedBlockingQueue;[D[D)Ljava/lang/Void;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=7, locals=27, args_size=5
         0: .line 2701
            sipush 256
            newarray 10
            astore 5 /* count */
        start local 5 // int[] count
         1: .line 2702
            sipush 256
            newarray 10
            astore 6 /* pos */
        start local 6 // int[] pos
         2: .line 2704
      StackMap locals: int[] int[]
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifne 7
         3: .line 2705
            iload 1
            istore 7 /* i */
        start local 7 // int i
         4: goto 6
         5: .line 2706
      StackMap locals: int
      StackMap stack:
            aload 2
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
         6: .line 2705
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            iinc 7 /* i */ -1
            ifne 5
        end local 7 // int i
         7: .line 2707
      StackMap locals:
      StackMap stack:
            aload 2
            invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
            checkcast it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            astore 7 /* segment */
        start local 7 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
         8: .line 2708
            aload 7 /* segment */
            getstatic it.unimi.dsi.fastutil.doubles.DoubleArrays.POISON_PILL:Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
            if_acmpne 10
         9: .line 2709
            aconst_null
            areturn
        10: .line 2710
      StackMap locals: it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
      StackMap stack:
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.offset:I
            istore 8 /* first */
        start local 8 // int first
        11: .line 2711
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.length:I
            istore 9 /* length */
        start local 9 // int length
        12: .line 2712
            aload 7 /* segment */
            getfield it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.level:I
            istore 10 /* level */
        start local 10 // int level
        13: .line 2713
            iload 10 /* level */
            bipush 8
            irem
            ifne 14
            sipush 128
            goto 15
      StackMap locals: int int int
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 11 /* signMask */
        start local 11 // int signMask
        16: .line 2714
            iload 10 /* level */
            bipush 8
            if_icmpge 17
            aload 3
            goto 18
      StackMap locals: int
      StackMap stack:
        17: aload 4
      StackMap locals:
      StackMap stack: double[]
        18: astore 12 /* k */
        start local 12 // double[] k
        19: .line 2715
            bipush 7
            iload 10 /* level */
            bipush 8
            irem
            isub
            bipush 8
            imul
            istore 13 /* shift */
        start local 13 // int shift
        20: .line 2717
            iload 8 /* first */
            iload 9 /* length */
            iadd
            istore 14 /* i */
        start local 14 // int i
        21: goto 23
        22: .line 2718
      StackMap locals: double[] int int
      StackMap stack:
            aload 5 /* count */
            aload 12 /* k */
            iload 14 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 11 /* signMask */
            i2l
            lxor
            l2i
            dup2
            iaload
            iconst_1
            iadd
            iastore
        23: .line 2717
      StackMap locals:
      StackMap stack:
            iload 14 /* i */
            iinc 14 /* i */ -1
            iload 8 /* first */
            if_icmpne 22
        end local 14 // int i
        24: .line 2720
            iconst_m1
            istore 14 /* lastUsed */
        start local 14 // int lastUsed
        25: .line 2721
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        26: iload 8 /* first */
            istore 16 /* p */
        start local 16 // int p
        27: goto 32
        28: .line 2722
      StackMap locals: int int
      StackMap stack:
            aload 5 /* count */
            iload 15 /* i */
            iaload
            ifeq 30
        29: .line 2723
            iload 15 /* i */
            istore 14 /* lastUsed */
        30: .line 2724
      StackMap locals:
      StackMap stack:
            aload 6 /* pos */
            iload 15 /* i */
            iload 16 /* p */
            aload 5 /* count */
            iload 15 /* i */
            iaload
            iadd
            dup
            istore 16 /* p */
            iastore
        31: .line 2721
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 15 /* i */
            sipush 256
            if_icmplt 28
        end local 16 // int p
        end local 15 // int i
        33: .line 2726
            iload 8 /* first */
            iload 9 /* length */
            iadd
            aload 5 /* count */
            iload 14 /* lastUsed */
            iaload
            isub
            istore 15 /* end */
        start local 15 // int end
        34: .line 2727
            iload 8 /* first */
            istore 16 /* i */
        start local 16 // int i
        35: iconst_m1
            istore 17 /* c */
        start local 17 // int c
        36: goto 59
        37: .line 2728
      StackMap locals: int
      StackMap stack:
            aload 3
            iload 16 /* i */
            daload
            dstore 19 /* t */
        start local 19 // double t
        38: .line 2729
            aload 4
            iload 16 /* i */
            daload
            dstore 21 /* u */
        start local 21 // double u
        39: .line 2730
            aload 12 /* k */
            iload 16 /* i */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 11 /* signMask */
            i2l
            lxor
            l2i
            istore 17 /* c */
        40: .line 2731
            iload 16 /* i */
            iload 15 /* end */
            if_icmpge 53
        41: .line 2732
            goto 49
        start local 18 // int d
        42: .line 2733
      StackMap locals: int double double
      StackMap stack:
            aload 12 /* k */
            iload 18 /* d */
            daload
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.fixDouble:(D)J
            iload 13 /* shift */
            lushr
            ldc 255
            land
            iload 11 /* signMask */
            i2l
            lxor
            l2i
            istore 17 /* c */
        43: .line 2734
            dload 19 /* t */
            dstore 23 /* z */
        start local 23 // double z
        44: .line 2735
            dload 21 /* u */
            dstore 25 /* w */
        start local 25 // double w
        45: .line 2736
            aload 3
            iload 18 /* d */
            daload
            dstore 19 /* t */
        46: .line 2737
            aload 4
            iload 18 /* d */
            daload
            dstore 21 /* u */
        47: .line 2738
            aload 3
            iload 18 /* d */
            dload 23 /* z */
            dastore
        48: .line 2739
            aload 4
            iload 18 /* d */
            dload 25 /* w */
            dastore
        end local 25 // double w
        end local 23 // double z
        end local 18 // int d
        49: .line 2732
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] double[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int double[] int int int int int top double double
      StackMap stack:
            aload 6 /* pos */
            iload 17 /* c */
            dup2
            iaload
            iconst_1
            isub
            dup_x2
            iastore
            dup
            istore 18 /* d */
        start local 18 // int d
        50: iload 16 /* i */
            if_icmpgt 42
        51: .line 2741
            aload 3
            iload 16 /* i */
            dload 19 /* t */
            dastore
        52: .line 2742
            aload 4
            iload 16 /* i */
            dload 21 /* u */
            dastore
        end local 18 // int d
        53: .line 2744
      StackMap locals:
      StackMap stack:
            iload 10 /* level */
            bipush 15
            if_icmpge 58
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iconst_1
            if_icmple 58
        54: .line 2745
            aload 5 /* count */
            iload 17 /* c */
            iaload
            sipush 1024
            if_icmpge 56
        55: .line 2746
            aload 3
            aload 4
            iload 16 /* i */
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iadd
            invokestatic it.unimi.dsi.fastutil.doubles.DoubleArrays.quickSort:([D[DII)V
            goto 58
        56: .line 2748
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        57: .line 2749
            aload 2
            new it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
            dup
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iload 10 /* level */
            iconst_1
            iadd
            invokespecial it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment.<init>:(III)V
            invokevirtual java.util.concurrent.LinkedBlockingQueue.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // double u
        end local 19 // double t
        58: .line 2727
      StackMap locals: java.util.concurrent.atomic.AtomicInteger int java.util.concurrent.LinkedBlockingQueue double[] double[] int[] int[] it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment int int int int double[] int int int int int
      StackMap stack:
            iload 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iaload
            iadd
            istore 16 /* i */
            aload 5 /* count */
            iload 17 /* c */
            iconst_0
            iastore
      StackMap locals:
      StackMap stack:
        59: iload 16 /* i */
            iload 15 /* end */
            if_icmple 37
        end local 17 // int c
        end local 16 // int i
        60: .line 2753
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
            pop
        end local 15 // int end
        end local 14 // int lastUsed
        end local 13 // int shift
        end local 12 // double[] k
        end local 11 // int signMask
        end local 10 // int level
        end local 9 // int length
        end local 8 // int first
        end local 7 // it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment segment
        61: .line 2703
            goto 2
        end local 6 // int[] pos
        end local 5 // int[] count
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   62     5     count  [I
            2   62     6       pos  [I
            4    7     7         i  I
            8   61     7   segment  Lit/unimi/dsi/fastutil/doubles/DoubleArrays$Segment;
           11   61     8     first  I
           12   61     9    length  I
           13   61    10     level  I
           16   61    11  signMask  I
           19   61    12         k  [D
           20   61    13     shift  I
           21   24    14         i  I
           25   61    14  lastUsed  I
           26   33    15         i  I
           27   33    16         p  I
           34   61    15       end  I
           35   60    16         i  I
           36   60    17         c  I
           42   49    18         d  I
           50   53    18         d  I
           38   58    19         t  D
           39   58    21         u  D
           44   49    23         z  D
           45   49    25         w  D
    Exceptions:
      throws java.lang.Exception
}
SourceFile: "DoubleArrays.java"
NestMembers:
  it.unimi.dsi.fastutil.doubles.DoubleArrays$ArrayHashStrategy  it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort  it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort2  it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortComp  it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortIndirect  it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment
InnerClasses:
  public abstract Strategy = it.unimi.dsi.fastutil.Hash$Strategy of it.unimi.dsi.fastutil.Hash
  private final ArrayHashStrategy = it.unimi.dsi.fastutil.doubles.DoubleArrays$ArrayHashStrategy of it.unimi.dsi.fastutil.doubles.DoubleArrays
  protected ForkJoinQuickSort = it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort of it.unimi.dsi.fastutil.doubles.DoubleArrays
  protected ForkJoinQuickSort2 = it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSort2 of it.unimi.dsi.fastutil.doubles.DoubleArrays
  protected ForkJoinQuickSortComp = it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortComp of it.unimi.dsi.fastutil.doubles.DoubleArrays
  protected ForkJoinQuickSortIndirect = it.unimi.dsi.fastutil.doubles.DoubleArrays$ForkJoinQuickSortIndirect of it.unimi.dsi.fastutil.doubles.DoubleArrays
  protected final Segment = it.unimi.dsi.fastutil.doubles.DoubleArrays$Segment of it.unimi.dsi.fastutil.doubles.DoubleArrays
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles