docs: private int sampleNew(DBIDs ids, WritableDataStore<HashSetModifiableDBIDs> sampleNewNeighbors, WritableDataStore<HashSetModifiableDBIDs> newNeighborHash, int items) {
      int t = 0;
      for(DBIDIter iditer = ids.iter(); iditer.valid(); iditer.advance()) {
        KNNHeap realNeighbors = store.get(iditer);
        HashSetModifiableDBIDs newNeighbors = newNeighborHash.get(iditer);
        HashSetModifiableDBIDs realNewNeighbors = sampleNewNeighbors.get(iditer);
        realNewNeighbors.clear(); // Reuse
        for(DoubleDBIDListIter heapiter = realNeighbors.unorderedIterator(); heapiter.valid(); heapiter.advance()) {
          if(newNeighbors.contains(heapiter)) {
            realNewNeighbors.add(heapiter);
            t++;
          }
        }
        boundSize(realNewNeighbors, items);
  
        newNeighbors.removeDBIDs(realNewNeighbors);
        newNeighborHash.put(iditer, newNeighbors);
      }
      return t;
    }