docs: private int chooseMaximalExtendedSplitAxis(List<? extends SpatialComparable> objects) {
      // maximum and minimum value for the extension
      int dimension = objects.get(0).getDimensionality();
      double[] maxExtension = new double[dimension];
      double[] minExtension = new double[dimension];
      Arrays.fill(minExtension, Double.MAX_VALUE);
  
      // compute min and max value in each dimension
      for (SpatialComparable object : objects) {
        for (int d = 0; d < dimension; d++) {
          double min, max;
          min = object.getMin(d);
          max = object.getMax(d);
  
          if (maxExtension[d] < max) {
            maxExtension[d] = max;
          }
  
          if (minExtension[d] > min) {
            minExtension[d] = min;
          }
        }
      }
  
      // set split axis to dim with maximal extension
      int splitAxis = -1;
      double max = 0;
      for (int d = 0; d < dimension; d++) {
        double currentExtension = maxExtension[d] - minExtension[d];
        if (max < currentExtension) {
          max = currentExtension;
          splitAxis = d;
        }
      }
      return splitAxis;
    }