11.1SjmmvTesting with TEST_LENGTH = 32
21.1Sjmmv
31.1Sjmmvtest _bit_byte, _bit_mask, and bitstr_size
41.1Sjmmv  i   _bit_byte(i)   _bit_mask(i) bitstr_size(i)
51.1Sjmmv  0              0              1              0
61.1Sjmmv  1              0              2              1
71.1Sjmmv  2              0              4              1
81.1Sjmmv  3              0              8              1
91.1Sjmmv  4              0             16              1
101.1Sjmmv  5              0             32              1
111.1Sjmmv  6              0             64              1
121.1Sjmmv  7              0            128              1
131.1Sjmmv  8              1              1              1
141.1Sjmmv  9              1              2              2
151.1Sjmmv 10              1              4              2
161.1Sjmmv 11              1              8              2
171.1Sjmmv 12              1             16              2
181.1Sjmmv 13              1             32              2
191.1Sjmmv 14              1             64              2
201.1Sjmmv 15              1            128              2
211.1Sjmmv 16              2              1              2
221.1Sjmmv 17              2              2              3
231.1Sjmmv 18              2              4              3
241.1Sjmmv 19              2              8              3
251.1Sjmmv 20              2             16              3
261.1Sjmmv 21              2             32              3
271.1Sjmmv 22              2             64              3
281.1Sjmmv 23              2            128              3
291.1Sjmmv 24              3              1              3
301.1Sjmmv 25              3              2              4
311.1Sjmmv 26              3              4              4
321.1Sjmmv 27              3              8              4
331.1Sjmmv 28              3             16              4
341.1Sjmmv 29              3             32              4
351.1Sjmmv 30              3             64              4
361.1Sjmmv 31              3            128              4
371.1Sjmmv
381.1Sjmmvtest bit_alloc, clearbits, bit_ffc, bit_ffs
391.1Sjmmvbe:   0  -1 00000000000000000000000000000000
401.1Sjmmvis:   0  -1 00000000000000000000000000000000
411.1Sjmmv
421.1Sjmmvtest bit_set
431.1Sjmmvbe:   1   0 10010010010010010010010010010010
441.1Sjmmvis:   1   0 10010010010010010010010010010010
451.1Sjmmv
461.1Sjmmvtest bit_clear
471.1Sjmmvbe:   0   3 00010000010000010000010000010000
481.1Sjmmvis:   0   3 00010000010000010000010000010000
491.1Sjmmv
501.1Sjmmvtest bit_test using previous bitstring
511.1Sjmmv  i    bit_test(i)
521.1Sjmmv  0              0
531.1Sjmmv  1              0
541.1Sjmmv  2              0
551.1Sjmmv  3              8
561.1Sjmmv  4              0
571.1Sjmmv  5              0
581.1Sjmmv  6              0
591.1Sjmmv  7              0
601.1Sjmmv  8              0
611.1Sjmmv  9              2
621.1Sjmmv 10              0
631.1Sjmmv 11              0
641.1Sjmmv 12              0
651.1Sjmmv 13              0
661.1Sjmmv 14              0
671.1Sjmmv 15            128
681.1Sjmmv 16              0
691.1Sjmmv 17              0
701.1Sjmmv 18              0
711.1Sjmmv 19              0
721.1Sjmmv 20              0
731.1Sjmmv 21             32
741.1Sjmmv 22              0
751.1Sjmmv 23              0
761.1Sjmmv 24              0
771.1Sjmmv 25              0
781.1Sjmmv 26              0
791.1Sjmmv 27              8
801.1Sjmmv 28              0
811.1Sjmmv 29              0
821.1Sjmmv 30              0
831.1Sjmmv 31              0
841.1Sjmmv
851.1Sjmmvtest clearbits
861.1Sjmmvbe:   0  -1 00000000000000000000000000000000
871.1Sjmmvis:   0  -1 00000000000000000000000000000000
881.1Sjmmv
891.1Sjmmvtest bit_nset and bit_nclear
901.1Sjmmvbe:   0   1 01111111111111111111111111111110
911.1Sjmmvis:   0   1 01111111111111111111111111111110
921.1Sjmmvbe:   0   1 01000000000000000000000000000010
931.1Sjmmvis:   0   1 01000000000000000000000000000010
941.1Sjmmvbe:   0  -1 00000000000000000000000000000000
951.1Sjmmvis:   0  -1 00000000000000000000000000000000
961.1Sjmmvbe:  31   0 11111111111111111111111111111110
971.1Sjmmvis:  31   0 11111111111111111111111111111110
981.1Sjmmvbe:   0  -1 00000000000000000000000000000000
991.1Sjmmvis:   0  -1 00000000000000000000000000000000
1001.1Sjmmv
1011.1Sjmmvfirst 1 bit should move right 1 position each line
1021.1Sjmmv  0  -1   0 11111111111111111111111111111111
1031.1Sjmmv  1   0   1 01111111111111111111111111111111
1041.1Sjmmv  2   0   2 00111111111111111111111111111111
1051.1Sjmmv  3   0   3 00011111111111111111111111111111
1061.1Sjmmv  4   0   4 00001111111111111111111111111111
1071.1Sjmmv  5   0   5 00000111111111111111111111111111
1081.1Sjmmv  6   0   6 00000011111111111111111111111111
1091.1Sjmmv  7   0   7 00000001111111111111111111111111
1101.1Sjmmv  8   0   8 00000000111111111111111111111111
1111.1Sjmmv  9   0   9 00000000011111111111111111111111
1121.1Sjmmv 10   0  10 00000000001111111111111111111111
1131.1Sjmmv 11   0  11 00000000000111111111111111111111
1141.1Sjmmv 12   0  12 00000000000011111111111111111111
1151.1Sjmmv 13   0  13 00000000000001111111111111111111
1161.1Sjmmv 14   0  14 00000000000000111111111111111111
1171.1Sjmmv 15   0  15 00000000000000011111111111111111
1181.1Sjmmv 16   0  16 00000000000000001111111111111111
1191.1Sjmmv 17   0  17 00000000000000000111111111111111
1201.1Sjmmv 18   0  18 00000000000000000011111111111111
1211.1Sjmmv 19   0  19 00000000000000000001111111111111
1221.1Sjmmv 20   0  20 00000000000000000000111111111111
1231.1Sjmmv 21   0  21 00000000000000000000011111111111
1241.1Sjmmv 22   0  22 00000000000000000000001111111111
1251.1Sjmmv 23   0  23 00000000000000000000000111111111
1261.1Sjmmv 24   0  24 00000000000000000000000011111111
1271.1Sjmmv 25   0  25 00000000000000000000000001111111
1281.1Sjmmv 26   0  26 00000000000000000000000000111111
1291.1Sjmmv 27   0  27 00000000000000000000000000011111
1301.1Sjmmv 28   0  28 00000000000000000000000000001111
1311.1Sjmmv 29   0  29 00000000000000000000000000000111
1321.1Sjmmv 30   0  30 00000000000000000000000000000011
1331.1Sjmmv 31   0  31 00000000000000000000000000000001
1341.1Sjmmv
1351.1Sjmmvfirst 0 bit should move right 1 position each line
1361.1Sjmmv  0   0  -1 00000000000000000000000000000000
1371.1Sjmmv  1   1   0 10000000000000000000000000000000
1381.1Sjmmv  2   2   0 11000000000000000000000000000000
1391.1Sjmmv  3   3   0 11100000000000000000000000000000
1401.1Sjmmv  4   4   0 11110000000000000000000000000000
1411.1Sjmmv  5   5   0 11111000000000000000000000000000
1421.1Sjmmv  6   6   0 11111100000000000000000000000000
1431.1Sjmmv  7   7   0 11111110000000000000000000000000
1441.1Sjmmv  8   8   0 11111111000000000000000000000000
1451.1Sjmmv  9   9   0 11111111100000000000000000000000
1461.1Sjmmv 10  10   0 11111111110000000000000000000000
1471.1Sjmmv 11  11   0 11111111111000000000000000000000
1481.1Sjmmv 12  12   0 11111111111100000000000000000000
1491.1Sjmmv 13  13   0 11111111111110000000000000000000
1501.1Sjmmv 14  14   0 11111111111111000000000000000000
1511.1Sjmmv 15  15   0 11111111111111100000000000000000
1521.1Sjmmv 16  16   0 11111111111111110000000000000000
1531.1Sjmmv 17  17   0 11111111111111111000000000000000
1541.1Sjmmv 18  18   0 11111111111111111100000000000000
1551.1Sjmmv 19  19   0 11111111111111111110000000000000
1561.1Sjmmv 20  20   0 11111111111111111111000000000000
1571.1Sjmmv 21  21   0 11111111111111111111100000000000
1581.1Sjmmv 22  22   0 11111111111111111111110000000000
1591.1Sjmmv 23  23   0 11111111111111111111111000000000
1601.1Sjmmv 24  24   0 11111111111111111111111100000000
1611.1Sjmmv 25  25   0 11111111111111111111111110000000
1621.1Sjmmv 26  26   0 11111111111111111111111111000000
1631.1Sjmmv 27  27   0 11111111111111111111111111100000
1641.1Sjmmv 28  28   0 11111111111111111111111111110000
1651.1Sjmmv 29  29   0 11111111111111111111111111111000
1661.1Sjmmv 30  30   0 11111111111111111111111111111100
1671.1Sjmmv 31  31   0 11111111111111111111111111111110
1681.1Sjmmv
1691.1Sjmmvfirst 0 bit should move left 1 position each line
1701.1Sjmmv  0  -1   0 11111111111111111111111111111111
1711.1Sjmmv  1  31   0 11111111111111111111111111111110
1721.1Sjmmv  2  30   0 11111111111111111111111111111100
1731.1Sjmmv  3  29   0 11111111111111111111111111111000
1741.1Sjmmv  4  28   0 11111111111111111111111111110000
1751.1Sjmmv  5  27   0 11111111111111111111111111100000
1761.1Sjmmv  6  26   0 11111111111111111111111111000000
1771.1Sjmmv  7  25   0 11111111111111111111111110000000
1781.1Sjmmv  8  24   0 11111111111111111111111100000000
1791.1Sjmmv  9  23   0 11111111111111111111111000000000
1801.1Sjmmv 10  22   0 11111111111111111111110000000000
1811.1Sjmmv 11  21   0 11111111111111111111100000000000
1821.1Sjmmv 12  20   0 11111111111111111111000000000000
1831.1Sjmmv 13  19   0 11111111111111111110000000000000
1841.1Sjmmv 14  18   0 11111111111111111100000000000000
1851.1Sjmmv 15  17   0 11111111111111111000000000000000
1861.1Sjmmv 16  16   0 11111111111111110000000000000000
1871.1Sjmmv 17  15   0 11111111111111100000000000000000
1881.1Sjmmv 18  14   0 11111111111111000000000000000000
1891.1Sjmmv 19  13   0 11111111111110000000000000000000
1901.1Sjmmv 20  12   0 11111111111100000000000000000000
1911.1Sjmmv 21  11   0 11111111111000000000000000000000
1921.1Sjmmv 22  10   0 11111111110000000000000000000000
1931.1Sjmmv 23   9   0 11111111100000000000000000000000
1941.1Sjmmv 24   8   0 11111111000000000000000000000000
1951.1Sjmmv 25   7   0 11111110000000000000000000000000
1961.1Sjmmv 26   6   0 11111100000000000000000000000000
1971.1Sjmmv 27   5   0 11111000000000000000000000000000
1981.1Sjmmv 28   4   0 11110000000000000000000000000000
1991.1Sjmmv 29   3   0 11100000000000000000000000000000
2001.1Sjmmv 30   2   0 11000000000000000000000000000000
2011.1Sjmmv 31   1   0 10000000000000000000000000000000
2021.1Sjmmv
2031.1Sjmmvfirst 1 bit should move left 1 position each line
2041.1Sjmmv  0   0  -1 00000000000000000000000000000000
2051.1Sjmmv  1   0  31 00000000000000000000000000000001
2061.1Sjmmv  2   0  30 00000000000000000000000000000011
2071.1Sjmmv  3   0  29 00000000000000000000000000000111
2081.1Sjmmv  4   0  28 00000000000000000000000000001111
2091.1Sjmmv  5   0  27 00000000000000000000000000011111
2101.1Sjmmv  6   0  26 00000000000000000000000000111111
2111.1Sjmmv  7   0  25 00000000000000000000000001111111
2121.1Sjmmv  8   0  24 00000000000000000000000011111111
2131.1Sjmmv  9   0  23 00000000000000000000000111111111
2141.1Sjmmv 10   0  22 00000000000000000000001111111111
2151.1Sjmmv 11   0  21 00000000000000000000011111111111
2161.1Sjmmv 12   0  20 00000000000000000000111111111111
2171.1Sjmmv 13   0  19 00000000000000000001111111111111
2181.1Sjmmv 14   0  18 00000000000000000011111111111111
2191.1Sjmmv 15   0  17 00000000000000000111111111111111
2201.1Sjmmv 16   0  16 00000000000000001111111111111111
2211.1Sjmmv 17   0  15 00000000000000011111111111111111
2221.1Sjmmv 18   0  14 00000000000000111111111111111111
2231.1Sjmmv 19   0  13 00000000000001111111111111111111
2241.1Sjmmv 20   0  12 00000000000011111111111111111111
2251.1Sjmmv 21   0  11 00000000000111111111111111111111
2261.1Sjmmv 22   0  10 00000000001111111111111111111111
2271.1Sjmmv 23   0   9 00000000011111111111111111111111
2281.1Sjmmv 24   0   8 00000000111111111111111111111111
2291.1Sjmmv 25   0   7 00000001111111111111111111111111
2301.1Sjmmv 26   0   6 00000011111111111111111111111111
2311.1Sjmmv 27   0   5 00000111111111111111111111111111
2321.1Sjmmv 28   0   4 00001111111111111111111111111111
2331.1Sjmmv 29   0   3 00011111111111111111111111111111
2341.1Sjmmv 30   0   2 00111111111111111111111111111111
2351.1Sjmmv 31   0   1 01111111111111111111111111111111
2361.1Sjmmv
2371.1Sjmmv0 bit should move right 1 position each line
2381.1Sjmmv  0   0   1 01111111111111111111111111111111
2391.1Sjmmv  1   1   0 10111111111111111111111111111111
2401.1Sjmmv  2   2   0 11011111111111111111111111111111
2411.1Sjmmv  3   3   0 11101111111111111111111111111111
2421.1Sjmmv  4   4   0 11110111111111111111111111111111
2431.1Sjmmv  5   5   0 11111011111111111111111111111111
2441.1Sjmmv  6   6   0 11111101111111111111111111111111
2451.1Sjmmv  7   7   0 11111110111111111111111111111111
2461.1Sjmmv  8   8   0 11111111011111111111111111111111
2471.1Sjmmv  9   9   0 11111111101111111111111111111111
2481.1Sjmmv 10  10   0 11111111110111111111111111111111
2491.1Sjmmv 11  11   0 11111111111011111111111111111111
2501.1Sjmmv 12  12   0 11111111111101111111111111111111
2511.1Sjmmv 13  13   0 11111111111110111111111111111111
2521.1Sjmmv 14  14   0 11111111111111011111111111111111
2531.1Sjmmv 15  15   0 11111111111111101111111111111111
2541.1Sjmmv 16  16   0 11111111111111110111111111111111
2551.1Sjmmv 17  17   0 11111111111111111011111111111111
2561.1Sjmmv 18  18   0 11111111111111111101111111111111
2571.1Sjmmv 19  19   0 11111111111111111110111111111111
2581.1Sjmmv 20  20   0 11111111111111111111011111111111
2591.1Sjmmv 21  21   0 11111111111111111111101111111111
2601.1Sjmmv 22  22   0 11111111111111111111110111111111
2611.1Sjmmv 23  23   0 11111111111111111111111011111111
2621.1Sjmmv 24  24   0 11111111111111111111111101111111
2631.1Sjmmv 25  25   0 11111111111111111111111110111111
2641.1Sjmmv 26  26   0 11111111111111111111111111011111
2651.1Sjmmv 27  27   0 11111111111111111111111111101111
2661.1Sjmmv 28  28   0 11111111111111111111111111110111
2671.1Sjmmv 29  29   0 11111111111111111111111111111011
2681.1Sjmmv 30  30   0 11111111111111111111111111111101
2691.1Sjmmv 31  31   0 11111111111111111111111111111110
2701.1Sjmmv
2711.1Sjmmv1 bit should move right 1 position each line
2721.1Sjmmv  0   1   0 10000000000000000000000000000000
2731.1Sjmmv  1   0   1 01000000000000000000000000000000
2741.1Sjmmv  2   0   2 00100000000000000000000000000000
2751.1Sjmmv  3   0   3 00010000000000000000000000000000
2761.1Sjmmv  4   0   4 00001000000000000000000000000000
2771.1Sjmmv  5   0   5 00000100000000000000000000000000
2781.1Sjmmv  6   0   6 00000010000000000000000000000000
2791.1Sjmmv  7   0   7 00000001000000000000000000000000
2801.1Sjmmv  8   0   8 00000000100000000000000000000000
2811.1Sjmmv  9   0   9 00000000010000000000000000000000
2821.1Sjmmv 10   0  10 00000000001000000000000000000000
2831.1Sjmmv 11   0  11 00000000000100000000000000000000
2841.1Sjmmv 12   0  12 00000000000010000000000000000000
2851.1Sjmmv 13   0  13 00000000000001000000000000000000
2861.1Sjmmv 14   0  14 00000000000000100000000000000000
2871.1Sjmmv 15   0  15 00000000000000010000000000000000
2881.1Sjmmv 16   0  16 00000000000000001000000000000000
2891.1Sjmmv 17   0  17 00000000000000000100000000000000
2901.1Sjmmv 18   0  18 00000000000000000010000000000000
2911.1Sjmmv 19   0  19 00000000000000000001000000000000
2921.1Sjmmv 20   0  20 00000000000000000000100000000000
2931.1Sjmmv 21   0  21 00000000000000000000010000000000
2941.1Sjmmv 22   0  22 00000000000000000000001000000000
2951.1Sjmmv 23   0  23 00000000000000000000000100000000
2961.1Sjmmv 24   0  24 00000000000000000000000010000000
2971.1Sjmmv 25   0  25 00000000000000000000000001000000
2981.1Sjmmv 26   0  26 00000000000000000000000000100000
2991.1Sjmmv 27   0  27 00000000000000000000000000010000
3001.1Sjmmv 28   0  28 00000000000000000000000000001000
3011.1Sjmmv 29   0  29 00000000000000000000000000000100
3021.1Sjmmv 30   0  30 00000000000000000000000000000010
3031.1Sjmmv 31   0  31 00000000000000000000000000000001
304