docs: private void checkClusters(Relation<V> relation, Object2ObjectMap<long[], List<ArrayModifiableDBIDs>> clustersMap) {
      final int dimensionality = RelationUtil.dimensionality(relation);
      // check if there are clusters < minpts
      // and add them to not assigned
      List<Pair<long[], ArrayModifiableDBIDs>> notAssigned = new ArrayList<>();
      Object2ObjectMap<long[], List<ArrayModifiableDBIDs>> newClustersMap = new Object2ObjectOpenCustomHashMap<>(BitsUtil.FASTUTIL_HASH_STRATEGY);
      Pair<long[], ArrayModifiableDBIDs> noise = new Pair<>(BitsUtil.zero(dimensionality), DBIDUtil.newArray());
      for(long[] pv : clustersMap.keySet()) {
        // noise
        if(BitsUtil.cardinality(pv) == 0) {
          List<ArrayModifiableDBIDs> parallelClusters = clustersMap.get(pv);
          for(ArrayModifiableDBIDs c : parallelClusters) {
            noise.second.addDBIDs(c);
          }
        }
        // clusters
        else {
          List<ArrayModifiableDBIDs> parallelClusters = clustersMap.get(pv);
          List<ArrayModifiableDBIDs> newParallelClusters = new ArrayList<>(parallelClusters.size());
          for(ArrayModifiableDBIDs c : parallelClusters) {
            if(!BitsUtil.isZero(pv) && c.size() < mu) {
              notAssigned.add(new Pair<>(pv, c));
            }
            else {
              newParallelClusters.add(c);
            }
          }
          newClustersMap.put(pv, newParallelClusters);
        }
      }
  
      clustersMap.clear();
      clustersMap.putAll(newClustersMap);
  
      for(Pair<long[], ArrayModifiableDBIDs> c : notAssigned) {
        if(c.second.isEmpty()) {
          continue;
        }
        Pair<long[], ArrayModifiableDBIDs> parent = findParent(relation, c, clustersMap);
        (parent != null ? parent : noise).second.addDBIDs(c.second);
      }
  
      List<ArrayModifiableDBIDs> noiseList = new ArrayList<>(1);
      noiseList.add(noise.second);
      clustersMap.put(noise.first, noiseList);
    }