@Override public long previousOne(final long index) { for (long i = index; i-- != 0;) if (getBoolean(i)) return i; return -1; }
@Override public long previousZero(final long index) { for (long i = index; i-- != 0;) if (! getBoolean(i)) return i; return -1; }
public long previousOne( final long index ) { for ( long i = index; i-- != 0; ) if ( getBoolean( i ) ) return i; return -1; }
public long previousZero( final long index ) { for ( long i = index; i-- != 0; ) if ( ! getBoolean( i ) ) return i; return -1; }
public long previousOne( final long index ) { for ( long i = index; i-- != 0; ) if ( getBoolean( i ) ) return i; return -1; }
public long previousZero( final long index ) { for ( long i = index; i-- != 0; ) if ( ! getBoolean( i ) ) return i; return -1; }
public long getLong( final long from, final long to ) { if ( to - from > 64 ) throw new IllegalArgumentException( "Range too large for a long: [" + from + ".." + to + ")" ); long result = 0; for( long i = from; i < to; i++ ) if ( getBoolean( i ) ) result |= 1L << i - from; return result; } public boolean getBoolean( final int index ) { return getBoolean( (long)index ); }
@Override public long getLong(final long from, final long to) { if (to - from > 64) throw new IllegalArgumentException("Range too large for a long: [" + from + ".." + to + ")"); long result = 0; for(long i = from; i < to; i++) if (getBoolean(i)) result |= 1L << i - from; return result; } public boolean getBoolean(final int index) { return getBoolean((long)index); }
public long getLong( final long from, final long to ) { if ( to - from > 64 ) throw new IllegalArgumentException( "Range too large for a long: [" + from + ".." + to + ")" ); long result = 0; for( long i = from; i < to; i++ ) if ( getBoolean( i ) ) result |= 1L << i - from; return result; } public boolean getBoolean( final int index ) { return getBoolean( (long)index ); }
@Override public long nextOne(final long index) { final long length = length(); for(long i = index; i < length; i++) if (getBoolean(i)) return i; return -1; }
public long nextOne( final long index ) { final long length = length(); for( long i = index; i < length; i++ ) if ( getBoolean( i ) ) return i; return -1; }
public long nextOne( final long index ) { final long length = length(); for( long i = index; i < length; i++ ) if ( getBoolean( i ) ) return i; return -1; }
public long nextZero( final long index ) { final long length = length(); for( long i = index; i < length; i++ ) if ( ! getBoolean( i ) ) return i; return -1; }
@Override public long nextZero(final long index) { final long length = length(); for(long i = index; i < length; i++) if (! getBoolean(i)) return i; return -1; }
public long nextZero( final long index ) { final long length = length(); for( long i = index; i < length; i++ ) if ( ! getBoolean( i ) ) return i; return -1; }
public long[] bits() { final long[] bits = new long[ (int)( ( length() + LongArrayBitVector.BITS_PER_WORD - 1 ) >> LongArrayBitVector.LOG2_BITS_PER_WORD ) ]; final long length = length(); for( int i = 0; i < length; i++ ) if ( getBoolean( i ) ) bits[ i >> LongArrayBitVector.LOG2_BITS_PER_WORD ] |= 1L << ( i & LongArrayBitVector.WORD_MASK ); return bits; }
@Override public long[] bits() { final long[] bits = new long[(int)((length() + LongArrayBitVector.BITS_PER_WORD - 1) >> LongArrayBitVector.LOG2_BITS_PER_WORD)]; final long length = length(); for(long i = 0; i < length; i++) if (getBoolean(i)) bits[(int)(i >> LongArrayBitVector.LOG2_BITS_PER_WORD)] |= 1L << i; return bits; }
public long[] bits() { final long[] bits = new long[ (int)( ( length() + LongArrayBitVector.BITS_PER_WORD - 1 ) >> LongArrayBitVector.LOG2_BITS_PER_WORD ) ]; final long length = length(); for( int i = 0; i < length; i++ ) if ( getBoolean( i ) ) bits[ i >> LongArrayBitVector.LOG2_BITS_PER_WORD ] |= 1L << ( i & LongArrayBitVector.WORD_MASK ); return bits; }
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; }