Also these are bithacks which were removed from one version since they're unused(they're from main "Bithacks" page at
http://graphics.stanford.edu/~seander/bithacks.html )
#define haszero(v) (~((((v & 0x7F7F7F7F) + 0x7F7F7F7F) | (v)) | 0x7F7F7F7F))
#define hasvalue(x,n) (haszero(((x)^((((~0UL)/255) * (n))))))
#define hasless(x,n) (((x)-(((~0UL)/255)*(n)))&(~(x))&(((~0UL)/255)*128))
#define countless(x,n)\
(((((~0UL)/255)*(127+(n))-((x)&(((~0UL)/255)*127)))&(~(x))&~0UL/255*128)/128%255)
#define hasbetween(x,m,n) ((~0UL/255*(127+(n))-((x)&~0UL/255*127)&~(x)&((x)&(~0UL/255*127))+(~0UL/255*(127-m)))&(~0UL/255*128))
#define countbetween(x,m,n) ((hasbetween(x,m,n)/128)%255)
//supplemental bithacks
#define unordered_match(num,chars) (hasvalue((num),(chars[0]))&&hasvalue((num),(chars[1]))&&hasvalue((num),(chars[2]))&&hasvalue((num),(chars[3])))
#define ordered_match(num,chars) !(((chars[0])|(chars[1]<<8)|(chars[2]<<16)|(chars[3]<<24))^num)