From 1753ddc4d6ca7a0122640cae68b59d75af38a6a2 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Fri, 16 Feb 2018 20:42:42 +0100 Subject: [PATCH] Improve bitset_at version by avoiding a redundant variable shift. --- m-bitset.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/m-bitset.h b/m-bitset.h index ff77a247..2d92c02d 100644 --- a/m-bitset.h +++ b/m-bitset.h @@ -145,11 +145,11 @@ bitset_set_at(bitset_t v, size_t i, bool x) { BITSETI_CONTRACT(v); assert (i < v->size && v->ptr != NULL); - size_t offset = i / BITSET_LIMB_BIT; - size_t index = i % BITSET_LIMB_BIT; - // This is a branchless version as x can only be 0 or 1. - v->ptr[offset] &= ~(((bitset_limb)1)<ptr[offset] |= ((bitset_limb)x)<ptr[offset] = (v->ptr[offset] & ~mask) | (mask & (-(bitset_limb)x)); BITSETI_CONTRACT (v); }