public final class org.eclipse.collections.impl.utility.primitive.DoubleQuickSort
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.eclipse.collections.impl.utility.primitive.DoubleQuickSort
  super_class: java.lang.Object
{
  private static final int SORT_SMALL_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.collections.impl.utility.primitive.DoubleQuickSort this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 30
            return
        end local 0 // org.eclipse.collections.impl.utility.primitive.DoubleQuickSort this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/collections/impl/utility/primitive/DoubleQuickSort;

  public static void sort(double[], int, int, org.eclipse.collections.api.block.comparator.primitive.DoubleComparator);
    descriptor: ([DIILorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=18, args_size=4
        start local 0 // double[] array
        start local 1 // int left
        start local 2 // int right
        start local 3 // org.eclipse.collections.api.block.comparator.primitive.DoubleComparator comparator
         0: .line 34
            iload 2 /* right */
            iload 1 /* left */
            isub
            iconst_1
            iadd
            istore 4 /* size */
        start local 4 // int size
         1: .line 36
            iload 4 /* size */
            bipush 9
            if_icmpgt 4
         2: .line 38
            aload 0 /* array */
            iload 1 /* left */
            iload 2 /* right */
            aload 3 /* comparator */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.insertionSort:([DIILorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;)V
         3: .line 39
            goto 48
         4: .line 43
      StackMap locals: int
      StackMap stack:
            iload 2 /* right */
            iload 2 /* right */
            iconst_2
            idiv
            isub
            iload 1 /* left */
            iconst_2
            idiv
            iadd
            istore 5 /* mid */
        start local 5 // int mid
         5: .line 44
            aload 0 /* array */
            iload 1 /* left */
            daload
            dstore 6 /* leftVal */
        start local 6 // double leftVal
         6: .line 45
            aload 0 /* array */
            iload 2 /* right */
            daload
            dstore 8 /* rightVal */
        start local 8 // double rightVal
         7: .line 46
            aload 0 /* array */
            iload 5 /* mid */
            daload
            dstore 10 /* midVal */
        start local 10 // double midVal
         8: .line 48
            iconst_m1
            istore 12 /* swapIndex */
        start local 12 // int swapIndex
         9: .line 50
            aload 3 /* comparator */
            dload 6 /* leftVal */
            dload 10 /* midVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifle 14
            aload 3 /* comparator */
            dload 6 /* leftVal */
            dload 8 /* rightVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifle 14
        10: .line 52
            aload 3 /* comparator */
            dload 10 /* midVal */
            dload 8 /* rightVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifge 11
            iload 2 /* right */
            goto 12
      StackMap locals: double[] int int org.eclipse.collections.api.block.comparator.primitive.DoubleComparator int int double double double int
      StackMap stack:
        11: iload 5 /* mid */
      StackMap locals:
      StackMap stack: int
        12: istore 12 /* swapIndex */
        13: .line 53
            goto 18
        14: .line 54
      StackMap locals:
      StackMap stack:
            aload 3 /* comparator */
            dload 6 /* leftVal */
            dload 10 /* midVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifge 18
            aload 3 /* comparator */
            dload 6 /* leftVal */
            dload 8 /* rightVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifge 18
        15: .line 56
            aload 3 /* comparator */
            dload 10 /* midVal */
            dload 8 /* rightVal */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifge 16
            iload 5 /* mid */
            goto 17
      StackMap locals:
      StackMap stack:
        16: iload 2 /* right */
      StackMap locals:
      StackMap stack: int
        17: istore 12 /* swapIndex */
        18: .line 59
      StackMap locals:
      StackMap stack:
            iload 12 /* swapIndex */
            ifle 20
        19: .line 61
            aload 0 /* array */
            iload 1 /* left */
            iload 12 /* swapIndex */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.swap:([DII)V
        20: .line 64
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 1 /* left */
            daload
            dstore 13 /* pivot */
        start local 13 // double pivot
        21: .line 66
            iload 1 /* left */
            iconst_1
            iadd
            istore 15 /* i */
        start local 15 // int i
        22: .line 67
            iload 2 /* right */
            istore 16 /* j */
        start local 16 // int j
        23: .line 69
            goto 33
        24: .line 74
      StackMap locals: double int int
      StackMap stack:
            iinc 15 /* i */ 1
        25: .line 72
      StackMap locals:
      StackMap stack:
            aload 3 /* comparator */
            aload 0 /* array */
            iload 15 /* i */
            daload
            dload 13 /* pivot */
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifgt 28
            iload 15 /* i */
            iload 16 /* j */
            if_icmplt 24
        26: .line 78
            goto 28
        27: .line 80
      StackMap locals:
      StackMap stack:
            iinc 16 /* j */ -1
        28: .line 78
      StackMap locals:
      StackMap stack:
            aload 3 /* comparator */
            dload 13 /* pivot */
            aload 0 /* array */
            iload 16 /* j */
            daload
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifge 29
            iload 16 /* j */
            iload 15 /* i */
            iconst_1
            isub
            if_icmpgt 27
        29: .line 83
      StackMap locals:
      StackMap stack:
            iload 15 /* i */
            iload 16 /* j */
            if_icmpge 32
        30: .line 85
            aload 0 /* array */
            iload 15 /* i */
            iload 16 /* j */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.swap:([DII)V
        31: .line 86
            goto 33
        32: .line 89
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 1 /* left */
            iload 16 /* j */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.swap:([DII)V
        33: .line 69
      StackMap locals:
      StackMap stack:
            iload 15 /* i */
            iload 16 /* j */
            if_icmplt 25
        34: .line 94
            iload 2 /* right */
            iload 16 /* j */
            iconst_1
            iadd
            if_icmple 41
        35: .line 96
            iload 16 /* j */
            iconst_1
            iadd
            istore 17 /* from */
        start local 17 // int from
        36: .line 97
            goto 38
        37: .line 99
      StackMap locals: int
      StackMap stack:
            iinc 17 /* from */ 1
        38: .line 97
      StackMap locals:
      StackMap stack:
            iload 2 /* right */
            iload 17 /* from */
            if_icmple 39
            aload 3 /* comparator */
            dload 13 /* pivot */
            aload 0 /* array */
            iload 17 /* from */
            daload
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifeq 37
        39: .line 101
      StackMap locals:
      StackMap stack:
            iload 2 /* right */
            iload 17 /* from */
            if_icmple 41
        40: .line 103
            aload 0 /* array */
            iload 17 /* from */
            iload 2 /* right */
            aload 3 /* comparator */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.sort:([DIILorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;)V
        end local 17 // int from
        41: .line 107
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 16 /* j */
            iconst_1
            isub
            if_icmpge 48
        42: .line 109
            iload 16 /* j */
            iconst_1
            isub
            istore 17 /* to */
        start local 17 // int to
        43: .line 110
            goto 45
        44: .line 112
      StackMap locals: int
      StackMap stack:
            iinc 17 /* to */ -1
        45: .line 110
      StackMap locals:
      StackMap stack:
            iload 17 /* to */
            iload 1 /* left */
            if_icmple 46
            aload 3 /* comparator */
            dload 13 /* pivot */
            aload 0 /* array */
            iload 17 /* to */
            daload
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifeq 44
        46: .line 114
      StackMap locals:
      StackMap stack:
            iload 1 /* left */
            iload 17 /* to */
            if_icmpge 48
        47: .line 116
            aload 0 /* array */
            iload 1 /* left */
            iload 17 /* to */
            aload 3 /* comparator */
            invokestatic org.eclipse.collections.impl.utility.primitive.DoubleQuickSort.sort:([DIILorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;)V
        end local 17 // int to
        end local 16 // int j
        end local 15 // int i
        end local 13 // double pivot
        end local 12 // int swapIndex
        end local 10 // double midVal
        end local 8 // double rightVal
        end local 6 // double leftVal
        end local 5 // int mid
        48: .line 120
      StackMap locals: double[] int int org.eclipse.collections.api.block.comparator.primitive.DoubleComparator int
      StackMap stack:
            return
        end local 4 // int size
        end local 3 // org.eclipse.collections.api.block.comparator.primitive.DoubleComparator comparator
        end local 2 // int right
        end local 1 // int left
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   49     0       array  [D
            0   49     1        left  I
            0   49     2       right  I
            0   49     3  comparator  Lorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;
            1   49     4        size  I
            5   48     5         mid  I
            6   48     6     leftVal  D
            7   48     8    rightVal  D
            8   48    10      midVal  D
            9   48    12   swapIndex  I
           21   48    13       pivot  D
           22   48    15           i  I
           23   48    16           j  I
           36   41    17        from  I
           43   48    17          to  I
    MethodParameters:
            Name  Flags
      array       
      left        
      right       
      comparator  

  private static void insertionSort(double[], int, int, org.eclipse.collections.api.block.comparator.primitive.DoubleComparator);
    descriptor: ([DIILorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // double[] array
        start local 1 // int left
        start local 2 // int right
        start local 3 // org.eclipse.collections.api.block.comparator.primitive.DoubleComparator comparator
         0: .line 124
            iload 1 /* left */
            iconst_1
            iadd
            istore 4 /* j */
        start local 4 // int j
         1: goto 11
         2: .line 126
      StackMap locals: int
      StackMap stack:
            aload 3 /* comparator */
            aload 0 /* array */
            iload 4 /* j */
            iconst_1
            isub
            daload
            aload 0 /* array */
            iload 4 /* j */
            daload
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
            ifle 10
         3: .line 128
            aload 0 /* array */
            iload 4 /* j */
            daload
            dstore 5 /* key */
        start local 5 // double key
         4: .line 129
            iload 4 /* j */
            iconst_1
            isub
            istore 7 /* i */
        start local 7 // int i
         5: .line 133
      StackMap locals: double int
      StackMap stack:
            aload 0 /* array */
            iload 7 /* i */
            iconst_1
            iadd
            aload 0 /* array */
            iload 7 /* i */
            daload
            dastore
         6: .line 134
            iinc 7 /* i */ -1
         7: .line 136
            iload 7 /* i */
            iconst_m1
            if_icmple 9
            aload 3 /* comparator */
            dload 5 /* key */
            aload 0 /* array */
            iload 7 /* i */
            daload
            invokeinterface org.eclipse.collections.api.block.comparator.primitive.DoubleComparator.compare:(DD)I
         8: .line 131
            iflt 5
         9: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* array */
            iload 7 /* i */
            iconst_1
            iadd
            dload 5 /* key */
            dastore
        end local 7 // int i
        end local 5 // double key
        10: .line 124
      StackMap locals:
      StackMap stack:
            iinc 4 /* j */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* j */
            iload 2 /* right */
            if_icmple 2
        end local 4 // int j
        12: .line 141
            return
        end local 3 // org.eclipse.collections.api.block.comparator.primitive.DoubleComparator comparator
        end local 2 // int right
        end local 1 // int left
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0       array  [D
            0   13     1        left  I
            0   13     2       right  I
            0   13     3  comparator  Lorg/eclipse/collections/api/block/comparator/primitive/DoubleComparator;
            1   12     4           j  I
            4   10     5         key  D
            5   10     7           i  I
    MethodParameters:
            Name  Flags
      array       
      left        
      right       
      comparator  

  private static void swap(double[], int, int);
    descriptor: ([DII)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // double[] array
        start local 1 // int i1
        start local 2 // int i2
         0: .line 145
            aload 0 /* array */
            iload 1 /* i1 */
            daload
            dstore 3 /* value */
        start local 3 // double value
         1: .line 146
            aload 0 /* array */
            iload 1 /* i1 */
            aload 0 /* array */
            iload 2 /* i2 */
            daload
            dastore
         2: .line 147
            aload 0 /* array */
            iload 2 /* i2 */
            dload 3 /* value */
            dastore
         3: .line 148
            return
        end local 3 // double value
        end local 2 // int i2
        end local 1 // int i1
        end local 0 // double[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0  array  [D
            0    4     1     i1  I
            0    4     2     i2  I
            1    4     3  value  D
    MethodParameters:
       Name  Flags
      array  
      i1     
      i2     
}
SourceFile: "DoubleQuickSort.java"