protected boolean containsClade(BitSet i,BitSet j){
  BitSet tmpI=(BitSet)i.clone();
  tmpI.xor(j);
  int numberOfBitsInEither=tmpI.cardinality();
  tmpI.and(i);
  int numberIfBitJustInContaining=tmpI.cardinality();
  return numberOfBitsInEither == numberIfBitJustInContaining;
}

protected boolean containsClade ( BitSet i , BitSet j ) { BitSet tmpI = ( BitSet ) i . clone ( ) ; tmpI . xor ( j ) ; int numberOfBitsInEither = tmpI . cardinality ( ) ; tmpI . and ( i ) ; int numberIfBitJustInContaining = tmpI . cardinality ( ) ; return numberOfBitsInEither == numberIfBitJustInContaining ; }
checks if clade i contains clade j .
