72 bool get(int32_t index);
79 bool get(int64_t index);
90 void set(int64_t index);
103 void set(int64_t startIndex, int64_t endIndex);
119 void clear(int32_t startIndex, int32_t endIndex);
124 void clear(int64_t startIndex, int64_t endIndex);
156 void flip(int64_t startIndex, int64_t endIndex);
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
A DocIdSet contains a set of doc ids. Implementing classes must only implement iterator to provide ac...
Definition DocIdSet.h:16
An "open" BitSet implementation that allows direct access to the array of words storing the bits.
Definition OpenBitSet.h:19
static int64_t unionCount(const OpenBitSetPtr &a, const OpenBitSetPtr &b)
Returns the popcount or cardinality of the union of the two sets. Neither set is modified.
void set(int64_t index)
Sets a bit, expanding the set size if necessary.
OpenBitSet(LongArray bits, int32_t numWords)
Constructs an OpenBitSet from an existing LongArray.
virtual bool equals(const LuceneObjectPtr &other)
Returns true if both sets have the same bits set.
virtual LuceneObjectPtr clone(const LuceneObjectPtr &other=LuceneObjectPtr())
Return clone of this object.
virtual bool isCacheable()
This DocIdSet implementation is cacheable.
bool getAndSet(int32_t index)
Sets a bit and returns the previous value. The index should be less than the OpenBitSet size.
int64_t nextSetBit(int64_t index)
Returns the index of the first set bit starting at the index specified. -1 is returned if there are n...
void flip(int64_t index)
Flips a bit, expanding the set size if necessary.
void andNot(const OpenBitSetPtr &other)
see remove
void clear(int64_t startIndex, int64_t endIndex)
Clears a range of bits. Clearing past the end does not change the size of the set.
bool get(int64_t index)
Returns true or false for the specified bit index.
virtual int32_t hashCode()
Return hash code for this object.
int32_t nextSetBit(int32_t index)
Returns the index of the first set bit starting at the index specified. -1 is returned if there are n...
void set(int64_t startIndex, int64_t endIndex)
Sets a range of bits, expanding the set size if necessary.
void fastFlip(int64_t index)
Flips a bit. The index should be less than the OpenBitSet size.
LongArray getBits()
Returns the long[] storing the bits.
static int64_t andNotCount(const OpenBitSetPtr &a, const OpenBitSetPtr &b)
Returns the popcount or cardinality of "a and not b" or "intersection(a, not(b))"....
static int64_t xorCount(const OpenBitSetPtr &a, const OpenBitSetPtr &b)
Returns the popcount or cardinality of the exclusive-or of the two sets. Neither set is modified.
void remove(const OpenBitSetPtr &other)
Remove all elements set in other. this = this AND_NOT other.
int32_t getNumWords()
Gets the number of longs in the array that are in use.
void fastSet(int32_t index)
Sets the bit at the specified index. The index should be less than the OpenBitSet size.
int64_t size()
Returns the current capacity of this set. Included for compatibility. This is not equal to cardinalit...
void fastClear(int32_t index)
Clears a bit. The index should be less than the OpenBitSet size.
void intersect(const OpenBitSetPtr &other)
this = this AND other
int32_t expandingWordNum(int64_t index)
bool flipAndGet(int64_t index)
Flips a bit and returns the resulting bit value. The index should be less than the OpenBitSet size.
void ensureCapacityWords(int32_t numWords)
Expand the LongArray with the size given as a number of words (64 bit longs). getNumWords() is unchan...
bool isEmpty()
Returns true if there are no set bits.
bool intersects(const OpenBitSetPtr &other)
Returns true if the sets have any elements in common.
void setNumWords(int32_t numWords)
Sets the number of longs in the array that are in use.
bool flipAndGet(int32_t index)
Flips a bit and returns the resulting bit value. The index should be less than the OpenBitSet size.
virtual DocIdSetIteratorPtr iterator()
Provides a DocIdSetIterator to access the set. This implementation can return null or EmptyDocIdSet....
void ensureCapacity(int64_t numBits)
Ensure that the LongArray is big enough to hold numBits, expanding it if necessary....
void _or(const OpenBitSetPtr &other)
see union
void flip(int64_t startIndex, int64_t endIndex)
Flips a range of bits, expanding the set size if necessary.
bool fastGet(int64_t index)
Returns true or false for the specified bit index. The index should be less than the OpenBitSet size.
void trimTrailingZeros()
Lowers numWords, the number of words in use, by checking for trailing zero words.
void setBits(LongArray bits)
Sets a new long[] to use as the bit storage.
bool getAndSet(int64_t index)
Sets a bit and returns the previous value. The index should be less than the OpenBitSet size.
LongArray bits
Definition OpenBitSet.h:40
void _xor(const OpenBitSetPtr &other)
this = this XOR other
void clear(int64_t index)
Clears a bit, allowing access beyond the current set size without changing the size.
bool fastGet(int32_t index)
Returns true or false for the specified bit index. The index should be less than the OpenBitSet size.
bool get(int32_t index)
Returns true or false for the specified bit index.
void fastClear(int64_t index)
Clears a bit. The index should be less than the OpenBitSet size.
void _union(const OpenBitSetPtr &other)
this = this OR other
void fastSet(int64_t index)
Sets the bit at the specified index. The index should be less than the OpenBitSet size.
OpenBitSet(int64_t numBits=64)
Constructs an OpenBitSet large enough to hold numBits.
void fastFlip(int32_t index)
Flips a bit. The index should be less than the OpenBitSet size.
void _and(const OpenBitSetPtr &other)
see intersect
int64_t capacity()
Returns the current capacity in bits (1 greater than the index of the last bit)
int32_t wlen
Definition OpenBitSet.h:41
void clear(int32_t startIndex, int32_t endIndex)
Clears a range of bits. Clearing past the end does not change the size of the set.
static int64_t intersectionCount(const OpenBitSetPtr &a, const OpenBitSetPtr &b)
Returns the popcount or cardinality of the intersection of the two sets. Neither set is modified.
int32_t getBit(int32_t index)
Returns 1 if the bit is set, 0 if not. The index should be less than the OpenBitSet size.
static int32_t bits2words(int64_t numBits)
Returns the number of 64 bit words it would take to hold numBits.
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition LuceneTypes.h:539
boost::shared_ptr< DocIdSetIterator > DocIdSetIteratorPtr
Definition LuceneTypes.h:324
boost::shared_ptr< OpenBitSet > OpenBitSetPtr
Definition LuceneTypes.h:543