int function ( ) { int loc0 = 0 ; int loc1 = 0 ; long loc2 = 1 ; while ( bits [ loc0 ] == 0 ) loc0 ++ ; while ( ( bits [ loc0 ] & loc2 ) == 0 ) { loc2 <<= 1 ; loc1 ++ ; } bits [ loc0 ] &= ~ loc2 ; return ( loc0 << BITS ) + loc1 ; }
returns one element of the set and removes it . precondition : the set is not empty . concode_field_sep long bits[] concode_elem_sep int BITS concode_elem_sep int MASK concode_elem_sep StateSet EMPTY concode_elem_sep boolean DEBUG concode_field_sep void add concode_elem_sep int size2nbits concode_elem_sep boolean containsSet concode_elem_sep boolean isElement concode_elem_sep void clear concode_elem_sep boolean containsElements concode_elem_sep void remove concode_elem_sep StateSetEnumerator states concode_elem_sep int hashCode concode_elem_sep boolean equals concode_elem_sep void resize concode_elem_sep String toString concode_elem_sep StateSet copy concode_elem_sep void copy concode_elem_sep StateSet complement concode_elem_sep void addState