|
| | RmMPlusMinusOne (std::span< const std::uint64_t > bits, std::size_t depth_count) |
| | Build an rmM-backed ±1 RMQ over external packed delta bits.
|
| |
| | RmMPlusMinusOne (std::span< const std::uint64_t > bits, std::size_t depth_count, std::size_t one_count) |
| | Build with an exact count of +1 delta bits.
|
| |
|
void | build (std::span< const std::uint64_t > bits, std::size_t depth_count) |
| | Rebuild this adapter over external packed delta bits.
|
| |
|
void | build (std::span< const std::uint64_t > bits, std::size_t depth_count, std::optional< std::size_t > one_count) |
| | Rebuild this adapter with an optional exact count of +1 delta bits.
|
| |
|
std::size_t | size () const |
| | Return the number of indexed depth positions.
|
| |
|
bool | empty () const |
| | Whether the indexed depth sequence is empty.
|
| |
| std::size_t | arg_min (std::size_t left, std::size_t right) const |
| | Return the first minimum depth position in [left, right).
|
| |
|
std::size_t | select0 (std::size_t rank) const |
| | Return the one-based rank-th closing parenthesis position.
|
| |
|
std::size_t | rank0 (std::size_t end_position) const |
| | Count closing parentheses in the prefix [0, end_position).
|
| |
| std::size_t | memory_usage_bytes () const |
| | Return owned auxiliary memory usage in bytes.
|
| |
template<class Index = std::size_t, std::size_t HighCacheLines = 4, std::size_t LowFanout = 32>
class pixie::rmq::detail::RmMPlusMinusOne< Index, HighCacheLines, LowFanout >
Depth RMQ adapter over the experimental rmM btree.
The input words encode adjacent depth deltas: bit 1 means +1 and bit 0 means -1. The indexed depth sequence has depth_count prefix positions, so the bit sequence has depth_count - 1 bits. Queries return the first position of the minimum depth in a half-open depth-position range.
pixie::experimental::RmMBTree::range_min_query_pos() works on inclusive bit ranges and reports extrema after consuming each bit. This adapter adds the missing left prefix boundary comparison, preserving first-minimum ties.