You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
BitChunks and the associated BitChunkIterator allow iterating over a bitmask in u64 sized blocks. Unfortunately this comes at the cost of unaligned reads, and non-trivial bit-shuffling for every u64 block. This is advantageous when alignment is important, for example when writing the data to another buffer, but is unnecessary when computing bit counts or set bit offsets.
Describe the solution you'd like
Add an UnalignedBitChunkIterator that iterates through already aligned u64 blocks, potentially with padding either side. SlicesIterator should then be updated to use this.
The text was updated successfully, but these errors were encountered:
* Add UnalignedBitChunks (#1227)
* Clippy
* Fix flaky test
* Improve test legibility
* Fix SlicesIterator offset direction
* Format
* Fix byte-aligned termination
* Test edge-cases
* More tests
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
* Review feedback
* Make UnalignedBitChunkIterator crate local
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
alamb
changed the title
UnalignedBitChunkIteratorUnalignedBitChunkIterator to that iterates through already aligned u64 blocks
Feb 3, 2022
Is your feature request related to a problem or challenge? Please describe what you are trying to do.
BitChunks
and the associatedBitChunkIterator
allow iterating over a bitmask in u64 sized blocks. Unfortunately this comes at the cost of unaligned reads, and non-trivial bit-shuffling for every u64 block. This is advantageous when alignment is important, for example when writing the data to another buffer, but is unnecessary when computing bit counts or set bit offsets.Describe the solution you'd like
Add an
UnalignedBitChunkIterator
that iterates through already aligned u64 blocks, potentially with padding either side.SlicesIterator
should then be updated to use this.The text was updated successfully, but these errors were encountered: