docs: private int subspaceDimensionality(NumberVector v1, NumberVector v2, long[] pv1, long[] pv2, long[] commonPreferenceVector) {
      // number of zero values in commonPreferenceVector
      int subspaceDim = v1.getDimensionality() - BitsUtil.cardinality(commonPreferenceVector);
  
      // special case: v1 and v2 are in parallel subspaces
      if(BitsUtil.equal(commonPreferenceVector, pv1) || BitsUtil.equal(commonPreferenceVector, pv2)) {
        double d = weightedDistance(v1, v2, commonPreferenceVector);
        if(d > 2 * epsilon) {
          subspaceDim++;
        }
      }
      return subspaceDim;
    }