From c7dfeeed29804c7a51a5c278ecc460cdc173f828 Mon Sep 17 00:00:00 2001 From: Tyge Løvset Date: Sun, 26 Jul 2020 18:45:55 +0200 Subject: cbitset.h --- stc/cbitset.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/stc/cbitset.h b/stc/cbitset.h index c6311080..4f30c091 100644 --- a/stc/cbitset.h +++ b/stc/cbitset.h @@ -60,6 +60,7 @@ typedef struct { uint64_t* _arr; size_t size; } CBitset; #define cbitset_init {NULL, 0} STC_API void cbitset_resize(CBitset* self, size_t size, bool value); +STC_API size_t cbitset_count(CBitset set); STC_INLINE void cbitset_setAll(CBitset *self, bool value); @@ -94,14 +95,6 @@ STC_INLINE void cbitset_flip(CBitset *self, size_t i) { STC_INLINE bool cbitset_test(CBitset set, size_t i) { return (set._arr[i >> 6] & (1ull << (i & 63))) != 0; } -STC_INLINE size_t cbitset_count(CBitset set) { - size_t count = 0, n = (set.size + 63) >> 6; - if (set.size > 0) { - --n; for (size_t i=0; i_arr, value ? 0xff : 0x0, ((self->size + 63) >> 6) * 8); @@ -165,6 +158,15 @@ STC_API void cbitset_resize(CBitset* self, size_t size, bool value) { } } +STC_API size_t cbitset_count(CBitset set) { + size_t count = 0, n = (set.size + 63) >> 6; + if (set.size > 0) { + --n; for (size_t i=0; i