typedef __uint32_t bitfield_type;
+#define BITS_PER_BITFIELD 32
+#define BITS_PER_BITFIELD_LOG 5
#define BIT_SET(set, d) \
- ( (void) ( set[d >> 5] |= (1 << (d & 31)) ) )
+ ( (void) ( set[d >> BITS_PER_BITFIELD_LOG] |= (1 << (d & (BITS_PER_BITFIELD-1))) ) )
#define BIT_ISSET(set, d) \
- (!(! ( set[d >> 5] & (1 << (d & 31)) ) ))
+ (!(! ( set[d >> BITS_PER_BITFIELD_LOG] & (1 << (d & (BITS_PER_BITFIELD-1))) ) ))
int ANY_BITS_SET(bitfield_type *set, size_t elems)
{
printf("\n\n\n\nBuilding table of distances...\n\n");
- titles_bitfield_elems = ROUNDUP(titles / 8 / sizeof(bitfield_type), sizeof(bitfield_type));
+ titles_bitfield_elems = ROUNDUP(titles / BITS_PER_BITFIELD, BITS_PER_BITFIELD);
titles_bitfield_bytes = titles_bitfield_elems * sizeof(bitfield_type);
titles_seen = calloc(titles_bitfield_bytes, 1);