code: private void itemsArrayToCombinedBuffer(final T[] itemsArray) {
      final int extra = 2; // space for min and max values
  
      //Load min, max
      minValue_ = itemsArray[0];
      maxValue_ = itemsArray[1];
  
      //Load base buffer
      System.arraycopy(itemsArray, extra, combinedBuffer_, 0, baseBufferCount_);
  
      //Load levels
      long bits = bitPattern_;
      if (bits > 0) {
        int index = extra + baseBufferCount_;
        for (int level = 0; bits != 0L; level++, bits >>>= 1) {
          if ((bits & 1L) > 0L) {
            System.arraycopy(itemsArray, index, combinedBuffer_, (2 + level) * k_, k_);
            index += k_;
          }
        }
      }
    }
docs: Loads the Combined Buffer, min and max from the given items array.
  The Combined Buffer is always in non-compact form and must be pre-allocated.
  @param itemsArray the given items array