public CLIQUESubspace join(CLIQUESubspace other, double all, double tau) {
    long[] dimensions = joinLastDimensions(other);
    if(dimensions == null) {
      return null;
    }

    CLIQUESubspace s = new CLIQUESubspace(dimensions);
    for(CLIQUEUnit u1 : this.denseUnits) {
      for(CLIQUEUnit u2 : other.denseUnits) {
        CLIQUEUnit u = u1.join(u2, all, tau);
        if(u != null) {
          s.addDenseUnit(u);
        }
      }
    }
    if(s.denseUnits.isEmpty()) {
      return null;
    }
    return s;
  }
public CLIQUESubspace join ( CLIQUESubspace other , double all , double tau ) { long [ ] dimensions = joinLastDimensions ( other ) ; if ( dimensions == null ) { return null ; } CLIQUESubspace s = new CLIQUESubspace ( dimensions ) ; for ( CLIQUEUnit u1 : this . denseUnits ) { for ( CLIQUEUnit u2 : other . denseUnits ) { CLIQUEUnit u = u1 . join ( u2 , all , tau ) ; if ( u != null ) { s . addDenseUnit ( u ) ; } } } if ( s . denseUnits . isEmpty ( ) ) { return null ; } return s ; }
Joins this subspace and its dense units with the specified subspace and its
dense units. The join is only successful if both subspaces have the first
k-1 dimensions in common (where k is the number of dimensions) and the last
dimension of this subspace is less than the last dimension of the specified
subspace.

@param other the subspace to join
@param all the overall number of feature vectors
@param tau the density threshold for the selectivity of a unit
@return the join of this subspace with the specified subspace if the join
condition is fulfilled, null otherwise.
@see de.lmu.ifi.dbs.elki.data.Subspace#joinLastDimensions