|
|
| ByteSlotOrder (std::size_t count=0) noexcept |
| | Construct identity order; requires count <= N.
|
| |
|
std::size_t | size () const noexcept |
| | Occupied count in [0,N].
|
| |
|
unsigned | operator[] (std::size_t i) const noexcept |
| | Physical index; requires i < size().
|
| |
|
bool | occupied (std::size_t i) const noexcept |
| | Whether physical slot i is occupied; requires i < N.
|
| |
|
bool | valid () const noexcept |
| | Check mapping uniqueness and occupancy.
|
| |
| void | rotate_left (std::size_t left, std::size_t right, std::size_t distance) noexcept |
| | Rotate [left,right); reduce distance modulo length; empty is a no-op.
|
| |
| std::size_t | rotate_children (std::array< void *, N > &, std::size_t left, std::size_t right, std::size_t distance) noexcept |
| | Rotate metadata using rotate_left's contract; pointers are untouched.
|
| |
template<std::size_t N, bool Simd = true>
class pixie::experimental::ByteSlotOrder< N, Simd >
Byte-index control for the split-bit slot-order experiment.
Shares SplitSlotOrder's ranges, occupancy, ownership and exception contracts. SIMD dispatch stays in this primitive; false selects the scalar comparison implementation on every host.
- Template Parameters
-
| N | Capacity, 32 or 64. |
| Simd | Permit available SIMD shuffles. |