|
|
std::size_t | size () const |
| | Number of bits in the represented sequence.
|
| |
|
std::size_t | rank1 (std::size_t end_position) const |
| | Count 1 bits in the prefix [0, end_position).
|
| |
|
std::size_t | rank0 (std::size_t end_position) const |
| | Count 0 bits in the prefix [0, end_position).
|
| |
| std::size_t | select1 (std::size_t rank) const |
| | Return the zero-based position of the rank-th 1 bit.
|
| |
| std::size_t | select0 (std::size_t rank) const |
| | Return the zero-based position of the rank-th 0 bit.
|
| |
| std::size_t | rank10 (std::size_t end_position) const |
| | Count "10" bit patterns fully contained in [0, end_position).
|
| |
| std::size_t | select10 (std::size_t rank) const |
| | Return the zero-based start position of the rank-th "10" pattern.
|
| |
|
int | excess (std::size_t end_position) const |
| | Prefix excess on [0, end_position): +1 for 1 bits, -1 for 0 bits.
|
| |
| std::size_t | fwdsearch (std::size_t start_position, int delta) const |
| | Forward excess search from a prefix boundary.
|
| |
| std::size_t | bwdsearch (std::size_t start_position, int delta) const |
| | Backward excess search from a prefix boundary.
|
| |
| std::size_t | range_min_query_pos (std::size_t range_begin, std::size_t range_end) const |
| | Position of the first minimum relative excess in [range_begin, range_end].
|
| |
| int | range_min_query_val (std::size_t range_begin, std::size_t range_end) const |
| | Minimum relative excess value over [range_begin, range_end].
|
| |
| std::size_t | range_max_query_pos (std::size_t range_begin, std::size_t range_end) const |
| | Position of the first maximum relative excess in [range_begin, range_end].
|
| |
| int | range_max_query_val (std::size_t range_begin, std::size_t range_end) const |
| | Maximum relative excess value over [range_begin, range_end].
|
| |
|
std::size_t | mincount (std::size_t range_begin, std::size_t range_end) const |
| | Count positions attaining the minimum relative excess in [range_begin, range_end].
|
| |
| std::size_t | minselect (std::size_t range_begin, std::size_t range_end, std::size_t rank) const |
| | Select a position attaining the minimum relative excess in [range_begin, range_end].
|
| |
| std::size_t | close (std::size_t open_position) const |
| | Matching closing parenthesis for the parenthesis at open_position.
|
| |
| std::size_t | open (std::size_t close_position) const |
| | Matching opening parenthesis for the parenthesis at close_position.
|
| |
| std::size_t | enclose (std::size_t open_position) const |
| | Closest opening parenthesis strictly enclosing position.
|
| |
|
int | bit (const size_t &position) const noexcept |
| | Read bit at position position (LSB-first across words).
|
| |
template<class Impl>
class pixie::RmMBase< Impl >
CRTP facade for rank/select and range min-max tree operations.
Positions are zero-based unless explicitly documented otherwise. Operations returning positions use npos when the requested value does not exist or the query is outside the valid domain. Balanced-parentheses navigation follows SDSL-style zero-based parenthesis indexing: close/open/enclose accept and return bit positions, not prefix-boundary positions.