docs: private static void quickSortReverse(double[] keys, int[] vals, final int start, final int end) {
      final int len = end - start;
      if(len < INSERTION_THRESHOLD) {
        insertionSortReverse(keys, vals, start, end);
        return;
      }
      final int last = end - 1;
  
      // Choose pivots by looking at five candidates.
      final int seventh = (len >> 3) + (len >> 6) + 1;
      final int m3 = (start + end) >> 1; // middle
      final int m2 = m3 - seventh;
      final int m1 = m2 - seventh;
      final int m4 = m3 + seventh;
      final int m5 = m4 + seventh;
  
      // Mixture of insertion and merge sort:
      sortReverse5(keys, vals, m1, m2, m3, m4, m5);
  
      // Move pivot to the front.
      double pivotkey = keys[m3];
      int pivotval = vals[m3];
      keys[m3] = keys[start];
      vals[m3] = vals[start];
  
      // The interval to pivotize
      int left = start + 1; // Without pivot
      int right = last; // inclusive
  
      // This is the classic QuickSort loop:
      while(true) {
        // Move duplicates to right partition, i.e. < here, <= below.
        while(left <= right && keys[left] > pivotkey) {
          left++;
        }
        while(left <= right && pivotkey >= keys[right]) {
          right--;
        }
        if(right <= left) {
          break;
        }
        swap(keys, vals, left, right);
        left++;
        right--;
      }
      // right now points to the last element smaller than the pivot.
      // Move pivot back into the appropriate place
      keys[start] = keys[right];
      vals[start] = vals[right];
      keys[right] = pivotkey;
      vals[right] = pivotval;
  
      // Recursion when more than one element only:
      if(start + 1 < right) {
        quickSortReverse(keys, vals, start, right);
      }
      int rstart = right + 1;
      // Avoid recursing on duplicates of the pivot:
      while(rstart < last && keys[rstart] >= keys[right]) {
        rstart++;
      }
      // Recurse when _more_ than 1 element only
      if(rstart < last) {
        quickSortReverse(keys, vals, rstart, end);
      }
    }