Eliminate need for reading upper bound at construction.
Summary: # Note: This is a resubmission after reverting this change. The failing `DCHECK` has been fixed with an explicit cast to `size_t` to accommodate long lists. # Summary This diff introduces the following changes to the EliasFanoReader implementation. - `EliasFanoReader` no longer requires knowledge of the last value in the list at construction time. This removes the need to access the last byte of the encoded list. - Operations in `UpperBitsReader` are now responsible for ensuring validity. - Removes constraint that the last set bit in upperBits must be in the last byte of the encoded list. In addition, the diff also extends the unit-tests for Elias Fano coding to add arbitrary extensions to the upperBound at construction to ensure that additional 0-blocks at the end of the list do not affect the behavior of the reader. Reviewed By: ot, luciang Differential Revision: D22211304 fbshipit-source-id: 0dbe904c9fd8cd9568a480355e5e6a4525922966
Showing
Please register or sign in to comment