From 0e232d146be0850e911cf3137b7f6b164f5d8ff8 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Mon, 14 Aug 2017 19:19:23 +0200 Subject: [PATCH] Branchless version of _set_at --- m-bitset.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/m-bitset.h b/m-bitset.h index 68a3727e..4cc9ec06 100644 --- a/m-bitset.h +++ b/m-bitset.h @@ -149,13 +149,14 @@ bitset_set_at(bitset_t v, size_t i, bool x) { BITSETI_CONTRACT(v); assert (i < v->size && v->ptr != NULL); + M_ASSUME (x == false || x == true); size_t offset = i / BITSET_LIMB_BIT; size_t index = i % BITSET_LIMB_BIT; - if (x == true){ - v->ptr[offset] |= 1U<ptr[offset] &= ~(1U<ptr[offset] &= ~(1U<ptr[offset] |= x<