public boolean set( final long index, final boolean value ) { if ( CHECKS ) ensureRestrictedIndex( index ); final int word = word( index ); final long mask = mask( index ); final boolean oldValue = ( bits[ word ] & mask ) != 0; if ( value ) bits[ word ] |= mask; else bits[ word ] &= ~mask; return oldValue != value; }
public boolean set( final long index, final boolean value ) { if ( CHECKS ) ensureRestrictedIndex( index ); final int word = word( index ); final long mask = mask( index ); final boolean oldValue = ( bits[ word ] & mask ) != 0; if ( value ) bits[ word ] |= mask; else bits[ word ] &= ~mask; return oldValue != value; }
public void set( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); bits[ word( index ) ] |= mask( index ); }
public void clear( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); bits[ word( index ) ] &= ~mask( index ); }
public boolean getBoolean( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); return ( bits[ word( index ) ] & mask( index ) ) != 0; }
public boolean getBoolean( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); return ( bits[ word( index ) ] & mask( index ) ) != 0; }
public void set( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); bits[ word( index ) ] |= mask( index ); }
public void clear( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); bits[ word( index ) ] &= ~mask( index ); }
public boolean removeBoolean( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); final boolean oldValue = getBoolean( index ); final long[] bits = this.bits; final int word = word( index ); final int bit = bit( index ); bits[ word ] = ( bits[ word ] & - ( 1L << bit ) << 1 ) >>> 1 | bits[ word ] & ( 1L << bit ) - 1; final int numWords = numWords( length-- ); for( int i = word + 1; i < numWords; i++ ) { if ( ( bits[ i ] & 1 ) != 0 ) bits[ i - 1 ] |= LAST_BIT_MASK; bits[ i ] >>>= 1; } return oldValue; }
public boolean removeBoolean( final long index ) { if ( CHECKS ) ensureRestrictedIndex( index ); final boolean oldValue = getBoolean( index ); final long[] bits = this.bits; final int word = word( index ); final int bit = bit( index ); bits[ word ] = ( bits[ word ] & - ( 1L << bit ) << 1 ) >>> 1 | bits[ word ] & ( 1L << bit ) - 1; final int numWords = numWords( length-- ); for( int i = word + 1; i < numWords; i++ ) { if ( ( bits[ i ] & 1 ) != 0 ) bits[ i - 1 ] |= LAST_BIT_MASK; bits[ i ] >>>= 1; } return oldValue; }