8 #include <roaring/memory.h>
9 #include <roaring/portability.h>
11 #include <roaring/roaring_types.h>
35 uint8_t high_bytes[6];
55 const uint64_t *vals);
68 #define roaring64_bitmap_from(...) \
70 const uint64_t roaring64_bitmap_from_array[] = {0, __VA_ARGS__}; \
71 return roaring64_bitmap_of_ptr( \
72 (sizeof(roaring64_bitmap_from_array) / \
73 sizeof(roaring64_bitmap_from_array[0])) - \
75 &roaring64_bitmap_from_array[1]); \
90 #define roaring64_bitmap_from(...) \
91 roaring64_bitmap_of_ptr( \
92 (sizeof((const uint64_t[]){0, __VA_ARGS__}) / sizeof(uint64_t)) - 1, \
93 &((const uint64_t[]){0, __VA_ARGS__})[1])
148 const uint64_t *vals);
200 const uint64_t *vals);
276 uint64_t *out_index);
287 uint64_t min, uint64_t max);
293 uint64_t min, uint64_t max);
320 roaring64_statistics_t *stat);
334 const char **reason);
393 uint64_t min, uint64_t max);
469 uint64_t min, uint64_t max);
477 uint64_t min, uint64_t max);
581 roaring_iterator64 iterator,
void *ptr);
roaring64_bitmap_t * roaring64_bitmap_move_from_roaring32(roaring_bitmap_t *r)
uint64_t roaring64_bitmap_or_cardinality(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
void roaring64_bitmap_add_many(roaring64_bitmap_t *r, size_t n_args, const uint64_t *vals)
roaring64_bitmap_t * roaring64_bitmap_and(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
bool roaring64_bitmap_intersect(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
void roaring64_bitmap_remove(roaring64_bitmap_t *r, uint64_t val)
void roaring64_bitmap_xor_inplace(roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
roaring64_iterator_t * roaring64_iterator_create(const roaring64_bitmap_t *r)
roaring64_bitmap_t * roaring64_bitmap_or(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
void roaring64_bitmap_remove_many(roaring64_bitmap_t *r, size_t n_args, const uint64_t *vals)
roaring64_bitmap_t * roaring64_bitmap_copy(const roaring64_bitmap_t *r)
roaring64_bitmap_t * roaring64_bitmap_andnot(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
uint64_t roaring64_iterator_value(const roaring64_iterator_t *it)
void roaring64_bitmap_add_range_closed(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
uint64_t roaring64_bitmap_andnot_cardinality(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
roaring64_iterator_t * roaring64_iterator_create_last(const roaring64_bitmap_t *r)
void roaring64_iterator_reinit_last(const roaring64_bitmap_t *r, roaring64_iterator_t *it)
void roaring64_bitmap_flip_closed_inplace(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
bool roaring64_bitmap_equals(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
roaring64_bitmap_t * roaring64_bitmap_flip(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
roaring64_bitmap_t * roaring64_bitmap_from_range(uint64_t min, uint64_t max, uint64_t step)
bool roaring64_bitmap_get_index(const roaring64_bitmap_t *r, uint64_t val, uint64_t *out_index)
size_t roaring64_bitmap_portable_size_in_bytes(const roaring64_bitmap_t *r)
bool roaring64_bitmap_run_optimize(roaring64_bitmap_t *r)
bool roaring64_bitmap_add_checked(roaring64_bitmap_t *r, uint64_t val)
void roaring64_bitmap_add(roaring64_bitmap_t *r, uint64_t val)
bool roaring64_bitmap_intersect_with_range(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
uint64_t roaring64_bitmap_range_cardinality(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
bool roaring64_iterator_advance(roaring64_iterator_t *it)
bool roaring64_bitmap_iterate(const roaring64_bitmap_t *r, roaring_iterator64 iterator, void *ptr)
bool roaring64_bitmap_contains_bulk(const roaring64_bitmap_t *r, roaring64_bulk_context_t *context, uint64_t val)
struct roaring64_iterator_s roaring64_iterator_t
roaring64_bitmap_t * roaring64_bitmap_flip_closed(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
void roaring64_bitmap_flip_inplace(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
roaring64_bitmap_t * roaring64_bitmap_create(void)
void roaring64_bitmap_statistics(const roaring64_bitmap_t *r, roaring64_statistics_t *stat)
void roaring64_bitmap_andnot_inplace(roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
roaring64_bitmap_t * roaring64_bitmap_of_ptr(size_t n_args, const uint64_t *vals)
bool roaring64_bitmap_internal_validate(const roaring64_bitmap_t *r, const char **reason)
void roaring64_bitmap_remove_range_closed(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
uint64_t roaring64_bitmap_range_closed_cardinality(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
uint64_t roaring64_bitmap_and_cardinality(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
struct roaring64_bitmap_s roaring64_bitmap_t
void roaring64_bitmap_remove_range(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
void roaring64_bitmap_add_bulk(roaring64_bitmap_t *r, roaring64_bulk_context_t *context, uint64_t val)
bool roaring64_bitmap_is_strict_subset(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
void roaring64_bitmap_remove_bulk(roaring64_bitmap_t *r, roaring64_bulk_context_t *context, uint64_t val)
size_t roaring64_bitmap_portable_serialize(const roaring64_bitmap_t *r, char *buf)
roaring64_bitmap_t * roaring64_bitmap_portable_deserialize_safe(const char *buf, size_t maxbytes)
bool roaring64_bitmap_contains(const roaring64_bitmap_t *r, uint64_t val)
void roaring64_bitmap_add_range(roaring64_bitmap_t *r, uint64_t min, uint64_t max)
size_t roaring64_bitmap_portable_deserialize_size(const char *buf, size_t maxbytes)
bool roaring64_iterator_move_equalorlarger(roaring64_iterator_t *it, uint64_t val)
bool roaring64_iterator_has_value(const roaring64_iterator_t *it)
bool roaring64_iterator_previous(roaring64_iterator_t *it)
uint64_t roaring64_bitmap_rank(const roaring64_bitmap_t *r, uint64_t val)
void roaring64_bitmap_to_uint64_array(const roaring64_bitmap_t *r, uint64_t *out)
uint64_t roaring64_bitmap_maximum(const roaring64_bitmap_t *r)
void roaring64_iterator_reinit(const roaring64_bitmap_t *r, roaring64_iterator_t *it)
void roaring64_iterator_free(roaring64_iterator_t *it)
void roaring64_bitmap_and_inplace(roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
roaring64_bitmap_t * roaring64_bitmap_xor(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
bool roaring64_bitmap_contains_range(const roaring64_bitmap_t *r, uint64_t min, uint64_t max)
uint64_t roaring64_iterator_read(roaring64_iterator_t *it, uint64_t *buf, uint64_t count)
struct roaring64_leaf_s roaring64_leaf_t
bool roaring64_bitmap_select(const roaring64_bitmap_t *r, uint64_t rank, uint64_t *element)
bool roaring64_bitmap_is_subset(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
uint64_t roaring64_bitmap_xor_cardinality(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
uint64_t roaring64_bitmap_minimum(const roaring64_bitmap_t *r)
void roaring64_bitmap_free(roaring64_bitmap_t *r)
double roaring64_bitmap_jaccard_index(const roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
uint64_t roaring64_bitmap_get_cardinality(const roaring64_bitmap_t *r)
struct roaring64_bulk_context_s roaring64_bulk_context_t
roaring64_iterator_t * roaring64_iterator_copy(const roaring64_iterator_t *it)
void roaring64_bitmap_or_inplace(roaring64_bitmap_t *r1, const roaring64_bitmap_t *r2)
bool roaring64_bitmap_is_empty(const roaring64_bitmap_t *r)
bool roaring64_bitmap_remove_checked(roaring64_bitmap_t *r, uint64_t val)
void roaring64_bitmap_clear(roaring64_bitmap_t *r)