docs: public ModifiableDBIDs determineIDs(DBIDs superSetIDs, HyperBoundingBox interval, double d_min, double d_max) {
      StringBuilder msg = LOG.isDebugging() ? new StringBuilder() : null;
      if(msg != null) {
        msg.append("interval ").append(interval);
      }
  
      ModifiableDBIDs childIDs = DBIDUtil.newHashSet(superSetIDs.size());
  
      Map<DBID, Double> minima = f_minima.get(interval);
      Map<DBID, Double> maxima = f_maxima.get(interval);
      if(minima == null || maxima == null) {
        minima = new HashMap<>();
        f_minima.put(interval, minima);
        maxima = new HashMap<>();
        f_maxima.put(interval, maxima);
      }
  
      for(DBIDIter iter = superSetIDs.iter(); iter.valid(); iter.advance()) {
        DBID id = DBIDUtil.deref(iter);
        Double f_min = minima.get(id);
        Double f_max = maxima.get(id);
  
        if(f_min == null) {
          ParameterizationFunction f = database.get(id);
          HyperBoundingBox minMax = f.determineAlphaMinMax(interval);
          f_min = f.function(SpatialUtil.getMin(minMax));
          f_max = f.function(SpatialUtil.getMax(minMax));
          minima.put(id, f_min);
          maxima.put(id, f_max);
        }
  
        if(msg != null) {
          msg.append("\n\nf_min ").append(f_min);
          msg.append("\nf_max ").append(f_max);
          msg.append("\nd_min ").append(d_min);
          msg.append("\nd_max ").append(d_max);
        }
  
        if(f_min - f_max > ParameterizationFunction.DELTA) {
          throw new IllegalArgumentException("Houston, we have a problem: f_min > f_max! " + "\nf_min[" + FormatUtil.format(SpatialUtil.centroid(interval)) + "] = " + f_min + "\nf_max[" + FormatUtil.format(SpatialUtil.centroid(interval)) + "] = " + f_max + "\nf " + database.get(id));
        }
  
        if(f_min <= d_max && f_max >= d_min) {
          childIDs.add(id);
          if(msg != null) {
            msg.append("\nid ").append(id).append(" appended");
          }
        }
  
        else {
          if(msg != null) {
            msg.append("\nid ").append(id).append(" NOT appended");
          }
        }
      }
  
      if(msg != null) {
        msg.append("\nchildIds ").append(childIDs.size());
        LOG.debugFine(msg.toString());
      }
  
      if(childIDs.size() < minPts) {
        return null;
      }
      else {
        return childIDs;
      }
    }