public boolean getBoolean( long index ) { if ( index >= length ) throw new IndexOutOfBoundsException(); if ( index == length - 1 ) return false; if ( index % 2 == 0 ) return true; return v.getBoolean( index / 2 ); }
@Override public boolean getBoolean(long index) { if (index >= length) throw new IndexOutOfBoundsException(); if (index == length - 1) return false; if (index % 2 == 0) return true; return v.getBoolean(index / 2); }
public boolean contains( final long index ) { if ( index < 0 ) throw new IllegalArgumentException( "The provided index (" + index + ") is negative" ); if ( index < from || index >= to ) return false; return index < bitVector.size() && bitVector.getBoolean( index ); }
@Override public boolean contains(final long index) { if (index < 0) throw new IllegalArgumentException("The provided index (" + index + ") is negative"); if (index < from || index >= to) return false; return index < bitVector.length() && bitVector.getBoolean(index); }
@Override public boolean getBoolean(final long index) { ensureIndex(index); return bitVector.getBoolean(from + index); }
public boolean contains( final long index ) { if ( index < 0 ) throw new IllegalArgumentException( "The provided index (" + index + ") is negative" ); if ( index < from || index >= to ) return false; return index < bitVector.size() && bitVector.getBoolean( index ); }
public int encode( final int symbol, final OutputBitStream obs ) throws IOException { final BitVector w = codeWord[ symbol ]; final int size = w.size(); for( int i = 0; i < size; i++ ) obs.writeBit( w.getBoolean( i ) ); return size; }
public boolean remove( final long index ) { final int size = bitVector.size(); if ( index >= size ) return false; final boolean oldValue = bitVector.getBoolean( index ); bitVector.clear( index ); return oldValue; }
public int encode( final int symbol, final OutputBitStream obs ) throws IOException { final BitVector w = codeWord[ symbol ]; final int size = w.size(); for( int i = 0; i < size; i++ ) obs.writeBit( w.getBoolean( i ) ); return size; }
@Override public int encode(final int symbol, final OutputBitStream obs) throws IOException { final BitVector w = codeWord[symbol]; final int length = (int) w.length(); for(int i = 0; i < length; i++) obs.writeBit(w.getBoolean(i)); return length; }
@Override public boolean remove(final long index) { final long length = bitVector.length(); if (index >= length) return false; final boolean oldValue = bitVector.getBoolean(index); bitVector.clear(index); return oldValue; }
public boolean add( final long index ) { if ( index < 0 ) throw new IllegalArgumentException( "The provided index (" + index + ") is negative" ); if ( index < from || index >= to ) return false; final int size = bitVector.size(); if ( index >= size ) bitVector.length( index + 1 ); final boolean oldValue = bitVector.getBoolean( index ); bitVector.set( index ); return ! oldValue; }
@Override public BitVector xor(final BitVector v) { for(long i = Math.min(length(), v.length()); i-- != 0;) if (v.getBoolean(i)) flip(i); return this; }
@Override public boolean add(final long index) { if (index < 0) throw new IllegalArgumentException("The provided index (" + index + ") is negative"); if (index < from || index >= to) return false; final long length = bitVector.length(); if (index >= length) bitVector.length(index + 1); final boolean oldValue = bitVector.getBoolean(index); bitVector.set(index); return ! oldValue; }
@Override public BitVector and(final BitVector v) { for(long i = Math.min(length(), v.length()); i-- != 0;) if (! v.getBoolean(i)) clear(i); return this; }
public boolean add( final long index ) { if ( index < 0 ) throw new IllegalArgumentException( "The provided index (" + index + ") is negative" ); if ( index < from || index >= to ) return false; final int size = bitVector.size(); if ( index >= size ) bitVector.length( index + 1 ); final boolean oldValue = bitVector.getBoolean( index ); bitVector.set( index ); return ! oldValue; }
@Override public BitVector or(final BitVector v) { for(long i = Math.min(length(), v.length()); i-- != 0;) if (v.getBoolean(i)) set(i); return this; }
@Override public long getLong(final long index) { if (index < 0 || index >= length - 1) throw new IndexOutOfBoundsException(Long.toString(index)); final long pos = selectUpper.select(index + 1); if (upperBits.getBoolean(pos - 1)) return getDiff(lowerBits, index, l); else return (pos - upperBits.previousOne(pos) - 1) * (1L << l) + getDiff(lowerBits, index, l); }
public boolean equals( final Object o ) { if ( ! ( o instanceof BitVector ) ) return false; BitVector v = (BitVector)o; long length = length(); if ( length != v.length() ) return false; while( length-- != 0 ) if ( getBoolean( length ) != v.getBoolean( length ) ) return false; return true; }
public boolean equals( final Object o ) { if ( ! ( o instanceof BitVector ) ) return false; BitVector v = (BitVector)o; long length = length(); if ( length != v.length() ) return false; while( length-- != 0 ) if ( getBoolean( length ) != v.getBoolean( length ) ) return false; return true; }