Vector cj_centroid = ProjectedCentroid.make(c_j.getModel().getDimensions(), database, c_j.getIDs()); long[] pv2 = s_j.getDimensions(); long[] commonPreferenceVector = BitsUtil.andCMin(pv1, pv2); int subspaceDim = subspaceDimensionality(ci_centroid, cj_centroid, pv1, pv2, commonPreferenceVector);
long[] pv = BitsUtil.andCMin(childPV, parentPV); if(pv.equals(parentPV)) { List<ArrayModifiableDBIDs> parentList = clustersMap.get(parentPV);
for(ArrayModifiableDBIDs c : parallelClusters) { Vector c_centroid = ProjectedCentroid.make(preferenceVector, relation, c); long[] commonPreferenceVector = BitsUtil.andCMin(preferenceVector, preferenceVector); int subspaceDim = subspaceDimensionality(object, c_centroid, preferenceVector, preferenceVector, commonPreferenceVector); if(subspaceDim == clusterOrder.getCorrelationValue(iter)) {
/** * Returns true, if the specified parent cluster is a parent of one child of * the children clusters. * * @param relation the database containing the objects * @param parent the parent to be tested * @param iter the list of children to be tested * @param db_dim Database dimensionality * @return true, if the specified parent cluster is a parent of one child of * the children clusters, false otherwise */ private boolean isParent(Relation<V> relation, Cluster<SubspaceModel> parent, Iter<Cluster<SubspaceModel>> iter, int db_dim) { Subspace s_p = parent.getModel().getSubspace(); Vector parent_centroid = ProjectedCentroid.make(s_p.getDimensions(), relation, parent.getIDs()); int subspaceDim_parent = db_dim - s_p.dimensionality(); for(; iter.valid(); iter.advance()) { Cluster<SubspaceModel> child = iter.get(); Subspace s_c = child.getModel().getSubspace(); Vector child_centroid = ProjectedCentroid.make(s_c.getDimensions(), relation, child.getIDs()); long[] commonPreferenceVector = BitsUtil.andCMin(s_p.getDimensions(), s_c.getDimensions()); int subspaceDim = subspaceDimensionality(parent_centroid, child_centroid, s_p.getDimensions(), s_c.getDimensions(), commonPreferenceVector); if(subspaceDim == subspaceDim_parent) { return true; } } return false; }