docs: protected DoubleDataStore computeIDs(DBIDs ids, KNNQuery<O> knnQ) {
      WritableDoubleDataStore intDims = DataStoreUtil.makeDoubleStorage(ids, DataStoreFactory.HINT_HOT | DataStoreFactory.HINT_TEMP);
      FiniteProgress prog = LOG.isVerbose() ? new FiniteProgress("Intrinsic dimensionality", ids.size(), LOG) : null;
      for(DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
        double id = 0.;
        try {
          id = estimator.estimate(knnQ, iter, k_c + 1);
        }
        catch(ArithmeticException e) {
          id = 0; // Too many duplicates, etc.
        }
        intDims.putDouble(iter, id);
        LOG.incrementProcessed(prog);
      }
      LOG.ensureCompleted(prog);
      return intDims;
    }