|
| | rank_support_int_scan (int_vector<> const *v=nullptr) |
| |
| | rank_support_int_scan (rank_support_int_scan const &rs)=default |
| |
| | rank_support_int_scan (rank_support_int_scan &&rs)=default |
| |
| rank_support_int_scan & | operator= (rank_support_int_scan const &rs)=default |
| |
| rank_support_int_scan & | operator= (rank_support_int_scan &&rs)=default |
| |
| size_type | rank (size_type idx, const value_type v) const |
| | Counts the occurrences of v in the prefix [0..idx-1].
|
| |
| size_type | operator() (size_type idx, const value_type v) const |
| | Alias for rank(idx, v)
|
| |
| size_type | prefix_rank (size_type idx, const value_type v) const |
| | Counts the occurrences of elements smaller or equal to v in the prefix [0..idx-1].
|
| |
| size_type | size () const |
| |
| size_type | serialize (std::ostream &out, structure_tree_node *v=nullptr, const std::string name="") const |
| | Serializes rank_support_int.
|
| |
| void | load (std::istream &, int_vector<> const *v=nullptr) |
| | Loads the rank_support_int.
|
| |
| void | set_vector (int_vector<> const *v=nullptr) |
| | Sets the supported int_vector to the given pointer.
|
| |
| | rank_support_int (int_vector<> const *v=nullptr) |
| | Constructor.
|
| |
| | rank_support_int (rank_support_int const &)=default |
| | Copy constructor.
|
| |
| | rank_support_int (rank_support_int &&)=default |
| |
| rank_support_int & | operator= (rank_support_int const &)=default |
| |
| rank_support_int & | operator= (rank_support_int &&)=default |
| |
| virtual | ~rank_support_int () |
| | Destructor.
|
| |
| virtual size_type | rank (const size_type i, const value_type v) const =0 |
| | Answers rank queries for the supported int_vector.
|
| |
| virtual size_type | operator() (const size_type idx, const value_type v) const =0 |
| | Alias for rank(idx, v)
|
| |
| virtual size_type | prefix_rank (const size_type i, const value_type v) const =0 |
| | Answers rank queries for the supported int_vector.
|
| |
| virtual size_type | serialize (std::ostream &out, structure_tree_node *v, const std::string name) const =0 |
| | Serializes rank_support_int.
|
| |
| virtual void | load (std::istream &in, int_vector<> const *v=nullptr)=0 |
| | Loads the rank_support_int.
|
| |
| virtual void | set_vector (int_vector<> const *v=nullptr)=0 |
| | Sets the supported int_vector to the given pointer.
|
| |
|
| template<typename uintX_t > |
| static constexpr uintX_t | bm_rec (const uintX_t w, const uint8_t length, const uint8_t max_length) |
| | Constructs a bit mask with the pattern w of a given length.
|
| |
| static std::array< uint64_t, alphabet_size > | generate_mask_array () |
| |
| static constexpr uint64_t | mask_prefix (value_type const v, uint64_t const w_even, uint64_t const w_odd) noexcept |
| | Mask the set prefix positions.
|
| |
| static constexpr uint64_t | set_positions_prefix (const uint64_t w, const value_type v) noexcept |
| | Count how often value v or smaller occurs in the word w.
|
| |
| static constexpr uint64_t | set_positions (const uint64_t w, const value_type v) noexcept |
| | Count how often value v occurs in the word w.
|
| |
| template<typename... value_t> |
| static constexpr std::array< uint64_t, sizeof...(value_t)> | word_prefix_rank (const uint64_t word, const size_type bit_pos, const value_t... values) noexcept |
| | Counts the occurrences of elements smaller or equal to v in the word starting at data up to position idx.
|
| |
| static constexpr uint32_t | word_rank (const uint64_t word, const size_type bit_pos, const value_type v) noexcept |
| | Counts the occurrences of elements smaller or equal to v in the word starting at data up to position idx.
|
| |
| static constexpr uint32_t | full_word_prefix_rank (const uint64_t word, const value_type v) noexcept |
| | Counts the occurrences of v in the word starting at data up to position idx.
|
| |
| static constexpr uint32_t | full_word_rank (const uint64_t word, const value_type v) noexcept |
| | Counts the occurrences of v in the word starting at data up to position idx.
|
| |
| static constexpr uint64_t | extract_word (uint64_t const *data, const size_type word_position) noexcept |
| | Returns the word a the given word position.
|
| |
| int_vector const * | m_v |
| | Pointer to the rank supported bit_vector.
|
| |
| static constexpr uint8_t | sigma {alphabet_size} |
| |
| static constexpr uint8_t | sigma_bits {ceil_log2(alphabet_size)} |
| |
| static constexpr uint8_t | bits_per_word {(64 / sigma_bits) * sigma_bits} |
| |
| static constexpr uint64_t | even_mask {bm_rec<uint64_t>(bits::lo_set[sigma_bits], sigma_bits * 2, 64)} |
| |
| static constexpr uint64_t | carry_select_mask {bm_rec<uint64_t>(1ULL << sigma_bits, sigma_bits * 2, 64)} |
| |
| static const std::array< uint64_t, alphabet_size > | masks = generate_mask_array() |
| |
template<uint8_t alphabet_size>
class sdsl::rank_support_int_scan< alphabet_size >
A class supporting rank queries in linear time.
- Template Parameters
-
- Space complexity
- Constant.
- Time complexity
- Linear in the size of the supported vector.
Definition at line 28 of file rank_support_int_scan.hpp.