public StateSet complement(StateSet set){
  if (set == null)   return null;
  StateSet result=new StateSet();
  result.bits=new long[set.bits.length];
  int i;
  int m=Math.min(bits.length,set.bits.length);
  for (i=0; i < m; i++) {
    result.bits[i]=~bits[i] & set.bits[i];
  }
  if (bits.length < set.bits.length)   System.arraycopy(set.bits,m,result.bits,m,result.bits.length - m);
  if (DEBUG)   Out.dump("Complement of " + this + Out.NL+ "and "+ set+ Out.NL+ " is :"+ result);
  return result;
}

public StateSet complement ( StateSet set ) { if ( set == null ) return null ; StateSet result = new StateSet ( ) ; result . bits = new long [ set . bits . length ] ; int i ; int m = Math . min ( bits . length , set . bits . length ) ; for ( i = 0 ; i < m ; i ++ ) { result . bits [ i ] = ~ bits [ i ] & set . bits [ i ] ; } if ( bits . length < set . bits . length ) System . arraycopy ( set . bits , m , result . bits , m , result . bits . length - m ) ; if ( DEBUG ) Out . dump ( "Complement of " + this + Out . NL + "and " + set + Out . NL + " is :" + result ) ; return result ; }
returns the set of elements that contained are in the specified set but are not contained in this set .
