return x;\r
}\r
\r
+int setbit_zero(pb *B, int i)\r
+{\r
+ int j,l;\r
+ j = i >> logD;\r
+ l = i & (D-1);\r
+ B[j] &= (~(1<<(D-1-l)));\r
+ return 0;\r
+}\r
+\r
+int setbit_one(pb *B, int i)\r
+{\r
+ int j,l;\r
+ j = i >> logD;\r
+ l = i & (D-1);\r
+ B[j] |= (1<<(D-1-l));\r
+ return 1;\r
+\r
+}\r
+\r
+\r
+\r
int setbits(pb *B, int i, int d, int x)\r
{\r
int j;\r
\r
static int selecttbl[8*256];\r
\r
-unsigned int popcount(pb x)\r
+unsigned int popcount_old(pb x)\r
{\r
pb r;\r
#if 0\r
return r;\r
}\r
\r
+inline unsigned int\r
+popcount(pb x) \r
+{\r
+ uint m1 = 0x55555555;\r
+ uint m2 = 0xc30c30c3;\r
+ x -= (x >> 1) & m1;\r
+ x = (x & m2) + ((x >> 2) & m2) + ((x >> 4) & m2);\r
+ x += x >> 6;\r
+ return (x + (x >> 12) + (x >> 24)) & 0x3f;\r
+}\r
+\r
+\r
unsigned int popcount8(pb x)\r
{\r
dword r;\r