diff --git a/m-bitset.h b/m-bitset.h index ff266f95..9242167f 100644 --- a/m-bitset.h +++ b/m-bitset.h @@ -159,6 +159,17 @@ bitset_set_at(bitset_t v, size_t i, bool x) BITSETI_CONTRACT (v); } +static inline void +bitset_flip_at(bitset_t v, size_t i) +{ + BITSETI_CONTRACT(v); + assert (i < v->size && v->ptr != NULL); + size_t offset = i / BITSET_LIMB_BIT; + size_t index = i % BITSET_LIMB_BIT; + v->ptr[offset] ^= 1U<