Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misc Missing Functionality for Roaring64 bitmaps #549

Open
5 of 6 tasks
Dr-Emann opened this issue Jan 13, 2024 · 1 comment
Open
5 of 6 tasks

Misc Missing Functionality for Roaring64 bitmaps #549

Dr-Emann opened this issue Jan 13, 2024 · 1 comment
Assignees

Comments

@Dr-Emann
Copy link
Member

Dr-Emann commented Jan 13, 2024

This is just a list of functionality which I noticed was missing in comparison to roaring_bitmap_t as I was adding bindings to croaring-rs. I may add more if I find anything else, rather than making more issues.

  • roaring64_bitmap_clear, to remove all data, and start from an empty bitmap
    (can this be done more efficiently than roaring64_bitmap_remove_range_closed(0, UINT64_MAX)). It seems like roaring64_bitmap_remove_range_closed could be optimized, it appears to loop through all high 48 bit combos, rather than skipping around using the ART. roaring64_bitmap_remove_range_closed(0, UINT64_MAX) is now efficient.
  • The ability to do external iteration (an iterator type that the caller controls arbitrarily)
  • roaring64_bitmap_remove_run_compression. This is probably only really useful after Provide serialization/deserialization functionality to the ART-based 64-bit roaring #542, to avoid run containers in the serialization when the reader won't understand them
  • roaring64_bitmap_internal_validate, mostly useful for tests, to ensure our assumptions are never broken (max art depth, things which should be sorted are, etc).
  • roaring64_bitmap_flip
  • roaring64_bitmap_range_cardinality is exclusive only, it's unfortunate that roaring64_bitmap_cardinality(r) can't be emulated by roaring64_bitmap_range_cardinality(r, 0, UINT64_MAX)
@Ezibenroc
Copy link
Member

Ezibenroc commented Jan 14, 2024

If I may add a few to the list:

  • A function to convert a roaring64_bitmap_t to an array of uint64_t (similar to roaring_bitmap_to_uint32_array)
  • A function to convert a roaring_bitmap_t to a roaring64_bitmap_t

Dr-Emann added a commit that referenced this issue May 23, 2024
The implementation was actually already written using an inclusive range
already.

See #549
Dr-Emann added a commit that referenced this issue May 23, 2024
The implementation was actually already written using an inclusive range
already.

See #549
Dr-Emann added a commit that referenced this issue May 23, 2024
The implementation was actually already written using an inclusive range
already.

See #549
Dr-Emann added a commit that referenced this issue May 23, 2024
The implementation was actually already written using an inclusive range
already.

See #549
Dr-Emann added a commit that referenced this issue May 23, 2024
The implementation was actually already written using an inclusive range
already.

See #549
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants