CRoaring
CRoaring copied to clipboard
Roaring bitmaps in C (and C++), with SIMD (AVX2, AVX-512 and NEON) optimizations: used by Apache Doris, ClickHouse, and StarRocks
Given that we are already not reentrant (malloc can't be used in signal handlers and we make extensive use of it), nor can I think of reasonable scenarios where we...
`roaring_bitmap_contains_multi` checks the bits by the given offset array and stores the value into results.
In a sparse roaringbitmap, the size of array_container may often be 1, 2, 3. But we can actually reuse the container pointer (sizeof(void*)) as an array of uint16_t to avoid...
`roaring_bitmap_add_bulk` is a generalization of `roaring_bitmap_add_many`, caching the container for the last inserted item, and avoiding looking the container up if another item is inserted in the same container. Use...
I found Roaring64Map's read,write method performance is bad. To a bitmap with a cardinality value of 590208, the read method elapsed 120ms, the write method elapsed 100ms. To be more...
The standard library specifies `free` to act as a `nop` when its argument is a `NULL` pointer. This gives us programmers a big convenience for error handling and similar situations...
I've been toying with the idea of making CRoaring benchmarks print their results in a format compatible with the `benchstat` tool we use in the Go world for comparing different...
Basically like `roaring_move_uint32_iterator_equalorlarger`, except that its purpose is to move through elements in descending order instead of ascending order. For use in conjunction with `roaring_init_iterator_last`. Seem like an oversight that...