|
| StrideDynRankSel (uint64_t bitvector[], size_t size) |
|
uint64_t * | bitvector () const |
|
virtual uint64_t | rank (size_t pos) |
|
virtual uint64_t | rank (size_t from, size_t to) |
|
virtual size_t | select (uint64_t rank) |
|
virtual size_t | selectZero (uint64_t rank) |
|
virtual uint64_t | update (size_t index, uint64_t word) |
|
virtual bool | set (size_t index) |
|
virtual bool | clear (size_t index) |
|
virtual bool | toggle (size_t index) |
|
virtual size_t | size () const |
|
virtual size_t | bitCount () const |
|
virtual uint64_t | rank (std::size_t pos)=0 |
|
uint64_t | rank (std::size_t from, std::size_t to) |
|
virtual uint64_t | rankZero (std::size_t pos) |
|
uint64_t | rankZero (std::size_t from, std::size_t to) |
|
virtual | ~DynamicBitVector ()=default |
|
virtual | ~Rank ()=default |
|
virtual uint64_t | rank (std::size_t pos)=0 |
|
uint64_t | rank (std::size_t from, std::size_t to) |
|
virtual uint64_t | rankZero (std::size_t pos) |
|
uint64_t | rankZero (std::size_t from, std::size_t to) |
|
virtual | ~Select ()=default |
|
virtual | ~SelectZero ()=default |
|
template<template< size_t, util::AllocType AT > class SPS, size_t WORDS, util::AllocType AT = util::AllocType::MALLOC>
class sux::bits::StrideDynRankSel< SPS, WORDS, AT >
Ranking and selection in a dynamic bit vector by means of a searchable prefix-sum data structure and linear searches on a sequence of words of given length.
Warning: if you plan an calling rank(size_t) with argument size(), you must have at least one additional free bit at the end of the provided bit vector.
- Template Parameters
-
SPS | underlying sux::util::SearchablePrefixSums implementation. |
WORDS | length (in words) of the linear search stride. |
AT | a type of memory allocation for the underlying structure. |
template<template< size_t, util::AllocType AT > class SPS, size_t WORDS, util::AllocType AT = util::AllocType::MALLOC>
Creates a new instance using a given bit vector.
Thus constructor only store a reference to the provided bit vector. The content of the bit vector should be changed only through the mutation methods of this class, or the results will be unpredictable.
Warning: if you plan an calling rank(size_t) with argument size(), you must have at least one additional free bit at the end of the provided bit vector.
- Parameters
-
bitvector | a bit vector of 64-bit words. |
size | the length (in bits) of the bit vector. |