DGtal 1.3.0
Loading...
Searching...
No Matches
Bits.cpp
1
30#include "DGtal/base/Bits.h"
32
33#include <iostream>
34
35
37// class Bits
39
43namespace DGtal
44{
45 // Lookup tables for find and count operations.
51 0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
52 2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
53 2, /* 10 */ 3, /* 11 */ 2, /* 12 */ 3, /* 13 */ 3, /* 14 */
54 4, /* 15 */ 1, /* 16 */ 2, /* 17 */ 2, /* 18 */ 3, /* 19 */
55 2, /* 20 */ 3, /* 21 */ 3, /* 22 */ 4, /* 23 */ 2, /* 24 */
56 3, /* 25 */ 3, /* 26 */ 4, /* 27 */ 3, /* 28 */ 4, /* 29 */
57 4, /* 30 */ 5, /* 31 */ 1, /* 32 */ 2, /* 33 */ 2, /* 34 */
58 3, /* 35 */ 2, /* 36 */ 3, /* 37 */ 3, /* 38 */ 4, /* 39 */
59 2, /* 40 */ 3, /* 41 */ 3, /* 42 */ 4, /* 43 */ 3, /* 44 */
60 4, /* 45 */ 4, /* 46 */ 5, /* 47 */ 2, /* 48 */ 3, /* 49 */
61 3, /* 50 */ 4, /* 51 */ 3, /* 52 */ 4, /* 53 */ 4, /* 54 */
62 5, /* 55 */ 3, /* 56 */ 4, /* 57 */ 4, /* 58 */ 5, /* 59 */
63 4, /* 60 */ 5, /* 61 */ 5, /* 62 */ 6, /* 63 */ 1, /* 64 */
64 2, /* 65 */ 2, /* 66 */ 3, /* 67 */ 2, /* 68 */ 3, /* 69 */
65 3, /* 70 */ 4, /* 71 */ 2, /* 72 */ 3, /* 73 */ 3, /* 74 */
66 4, /* 75 */ 3, /* 76 */ 4, /* 77 */ 4, /* 78 */ 5, /* 79 */
67 2, /* 80 */ 3, /* 81 */ 3, /* 82 */ 4, /* 83 */ 3, /* 84 */
68 4, /* 85 */ 4, /* 86 */ 5, /* 87 */ 3, /* 88 */ 4, /* 89 */
69 4, /* 90 */ 5, /* 91 */ 4, /* 92 */ 5, /* 93 */ 5, /* 94 */
70 6, /* 95 */ 2, /* 96 */ 3, /* 97 */ 3, /* 98 */ 4, /* 99 */
71 3, /* 100 */ 4, /* 101 */ 4, /* 102 */ 5, /* 103 */ 3, /* 104 */
72 4, /* 105 */ 4, /* 106 */ 5, /* 107 */ 4, /* 108 */ 5, /* 109 */
73 5, /* 110 */ 6, /* 111 */ 3, /* 112 */ 4, /* 113 */ 4, /* 114 */
74 5, /* 115 */ 4, /* 116 */ 5, /* 117 */ 5, /* 118 */ 6, /* 119 */
75 4, /* 120 */ 5, /* 121 */ 5, /* 122 */ 6, /* 123 */ 5, /* 124 */
76 6, /* 125 */ 6, /* 126 */ 7, /* 127 */ 1, /* 128 */ 2, /* 129 */
77 2, /* 130 */ 3, /* 131 */ 2, /* 132 */ 3, /* 133 */ 3, /* 134 */
78 4, /* 135 */ 2, /* 136 */ 3, /* 137 */ 3, /* 138 */ 4, /* 139 */
79 3, /* 140 */ 4, /* 141 */ 4, /* 142 */ 5, /* 143 */ 2, /* 144 */
80 3, /* 145 */ 3, /* 146 */ 4, /* 147 */ 3, /* 148 */ 4, /* 149 */
81 4, /* 150 */ 5, /* 151 */ 3, /* 152 */ 4, /* 153 */ 4, /* 154 */
82 5, /* 155 */ 4, /* 156 */ 5, /* 157 */ 5, /* 158 */ 6, /* 159 */
83 2, /* 160 */ 3, /* 161 */ 3, /* 162 */ 4, /* 163 */ 3, /* 164 */
84 4, /* 165 */ 4, /* 166 */ 5, /* 167 */ 3, /* 168 */ 4, /* 169 */
85 4, /* 170 */ 5, /* 171 */ 4, /* 172 */ 5, /* 173 */ 5, /* 174 */
86 6, /* 175 */ 3, /* 176 */ 4, /* 177 */ 4, /* 178 */ 5, /* 179 */
87 4, /* 180 */ 5, /* 181 */ 5, /* 182 */ 6, /* 183 */ 4, /* 184 */
88 5, /* 185 */ 5, /* 186 */ 6, /* 187 */ 5, /* 188 */ 6, /* 189 */
89 6, /* 190 */ 7, /* 191 */ 2, /* 192 */ 3, /* 193 */ 3, /* 194 */
90 4, /* 195 */ 3, /* 196 */ 4, /* 197 */ 4, /* 198 */ 5, /* 199 */
91 3, /* 200 */ 4, /* 201 */ 4, /* 202 */ 5, /* 203 */ 4, /* 204 */
92 5, /* 205 */ 5, /* 206 */ 6, /* 207 */ 3, /* 208 */ 4, /* 209 */
93 4, /* 210 */ 5, /* 211 */ 4, /* 212 */ 5, /* 213 */ 5, /* 214 */
94 6, /* 215 */ 4, /* 216 */ 5, /* 217 */ 5, /* 218 */ 6, /* 219 */
95 5, /* 220 */ 6, /* 221 */ 6, /* 222 */ 7, /* 223 */ 3, /* 224 */
96 4, /* 225 */ 4, /* 226 */ 5, /* 227 */ 4, /* 228 */ 5, /* 229 */
97 5, /* 230 */ 6, /* 231 */ 4, /* 232 */ 5, /* 233 */ 5, /* 234 */
98 6, /* 235 */ 5, /* 236 */ 6, /* 237 */ 6, /* 238 */ 7, /* 239 */
99 4, /* 240 */ 5, /* 241 */ 5, /* 242 */ 6, /* 243 */ 5, /* 244 */
100 6, /* 245 */ 6, /* 246 */ 7, /* 247 */ 5, /* 248 */ 6, /* 249 */
101 6, /* 250 */ 7, /* 251 */ 6, /* 252 */ 7, /* 253 */ 7, /* 254 */
102 8 /* 255 */
103 }; // end _Bit_count
104
111 const DGtal::uint8_t Bits::myLSB[] = {
112 0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
113 0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
114 1, /* 10 */ 0, /* 11 */ 2, /* 12 */ 0, /* 13 */ 1, /* 14 */
115 0, /* 15 */ 4, /* 16 */ 0, /* 17 */ 1, /* 18 */ 0, /* 19 */
116 2, /* 20 */ 0, /* 21 */ 1, /* 22 */ 0, /* 23 */ 3, /* 24 */
117 0, /* 25 */ 1, /* 26 */ 0, /* 27 */ 2, /* 28 */ 0, /* 29 */
118 1, /* 30 */ 0, /* 31 */ 5, /* 32 */ 0, /* 33 */ 1, /* 34 */
119 0, /* 35 */ 2, /* 36 */ 0, /* 37 */ 1, /* 38 */ 0, /* 39 */
120 3, /* 40 */ 0, /* 41 */ 1, /* 42 */ 0, /* 43 */ 2, /* 44 */
121 0, /* 45 */ 1, /* 46 */ 0, /* 47 */ 4, /* 48 */ 0, /* 49 */
122 1, /* 50 */ 0, /* 51 */ 2, /* 52 */ 0, /* 53 */ 1, /* 54 */
123 0, /* 55 */ 3, /* 56 */ 0, /* 57 */ 1, /* 58 */ 0, /* 59 */
124 2, /* 60 */ 0, /* 61 */ 1, /* 62 */ 0, /* 63 */ 6, /* 64 */
125 0, /* 65 */ 1, /* 66 */ 0, /* 67 */ 2, /* 68 */ 0, /* 69 */
126 1, /* 70 */ 0, /* 71 */ 3, /* 72 */ 0, /* 73 */ 1, /* 74 */
127 0, /* 75 */ 2, /* 76 */ 0, /* 77 */ 1, /* 78 */ 0, /* 79 */
128 4, /* 80 */ 0, /* 81 */ 1, /* 82 */ 0, /* 83 */ 2, /* 84 */
129 0, /* 85 */ 1, /* 86 */ 0, /* 87 */ 3, /* 88 */ 0, /* 89 */
130 1, /* 90 */ 0, /* 91 */ 2, /* 92 */ 0, /* 93 */ 1, /* 94 */
131 0, /* 95 */ 5, /* 96 */ 0, /* 97 */ 1, /* 98 */ 0, /* 99 */
132 2, /* 100 */ 0, /* 101 */ 1, /* 102 */ 0, /* 103 */ 3, /* 104 */
133 0, /* 105 */ 1, /* 106 */ 0, /* 107 */ 2, /* 108 */ 0, /* 109 */
134 1, /* 110 */ 0, /* 111 */ 4, /* 112 */ 0, /* 113 */ 1, /* 114 */
135 0, /* 115 */ 2, /* 116 */ 0, /* 117 */ 1, /* 118 */ 0, /* 119 */
136 3, /* 120 */ 0, /* 121 */ 1, /* 122 */ 0, /* 123 */ 2, /* 124 */
137 0, /* 125 */ 1, /* 126 */ 0, /* 127 */ 7, /* 128 */ 0, /* 129 */
138 1, /* 130 */ 0, /* 131 */ 2, /* 132 */ 0, /* 133 */ 1, /* 134 */
139 0, /* 135 */ 3, /* 136 */ 0, /* 137 */ 1, /* 138 */ 0, /* 139 */
140 2, /* 140 */ 0, /* 141 */ 1, /* 142 */ 0, /* 143 */ 4, /* 144 */
141 0, /* 145 */ 1, /* 146 */ 0, /* 147 */ 2, /* 148 */ 0, /* 149 */
142 1, /* 150 */ 0, /* 151 */ 3, /* 152 */ 0, /* 153 */ 1, /* 154 */
143 0, /* 155 */ 2, /* 156 */ 0, /* 157 */ 1, /* 158 */ 0, /* 159 */
144 5, /* 160 */ 0, /* 161 */ 1, /* 162 */ 0, /* 163 */ 2, /* 164 */
145 0, /* 165 */ 1, /* 166 */ 0, /* 167 */ 3, /* 168 */ 0, /* 169 */
146 1, /* 170 */ 0, /* 171 */ 2, /* 172 */ 0, /* 173 */ 1, /* 174 */
147 0, /* 175 */ 4, /* 176 */ 0, /* 177 */ 1, /* 178 */ 0, /* 179 */
148 2, /* 180 */ 0, /* 181 */ 1, /* 182 */ 0, /* 183 */ 3, /* 184 */
149 0, /* 185 */ 1, /* 186 */ 0, /* 187 */ 2, /* 188 */ 0, /* 189 */
150 1, /* 190 */ 0, /* 191 */ 6, /* 192 */ 0, /* 193 */ 1, /* 194 */
151 0, /* 195 */ 2, /* 196 */ 0, /* 197 */ 1, /* 198 */ 0, /* 199 */
152 3, /* 200 */ 0, /* 201 */ 1, /* 202 */ 0, /* 203 */ 2, /* 204 */
153 0, /* 205 */ 1, /* 206 */ 0, /* 207 */ 4, /* 208 */ 0, /* 209 */
154 1, /* 210 */ 0, /* 211 */ 2, /* 212 */ 0, /* 213 */ 1, /* 214 */
155 0, /* 215 */ 3, /* 216 */ 0, /* 217 */ 1, /* 218 */ 0, /* 219 */
156 2, /* 220 */ 0, /* 221 */ 1, /* 222 */ 0, /* 223 */ 5, /* 224 */
157 0, /* 225 */ 1, /* 226 */ 0, /* 227 */ 2, /* 228 */ 0, /* 229 */
158 1, /* 230 */ 0, /* 231 */ 3, /* 232 */ 0, /* 233 */ 1, /* 234 */
159 0, /* 235 */ 2, /* 236 */ 0, /* 237 */ 1, /* 238 */ 0, /* 239 */
160 4, /* 240 */ 0, /* 241 */ 1, /* 242 */ 0, /* 243 */ 2, /* 244 */
161 0, /* 245 */ 1, /* 246 */ 0, /* 247 */ 3, /* 248 */ 0, /* 249 */
162 1, /* 250 */ 0, /* 251 */ 2, /* 252 */ 0, /* 253 */ 1, /* 254 */
163 0, /* 255 */
164 }; // end _First_one
165
166
173 const DGtal::uint8_t Bits::myMSB[] = {
1740 /* 0*/ ,
1750 /* 1*/ ,1 /* 2*/ ,1 /* 3*/ ,2 /* 4*/ ,2 /* 5*/ ,
1762 /* 6*/ ,2 /* 7*/ ,3 /* 8*/ ,3 /* 9*/ ,3 /* 10*/ ,
1773 /* 11*/ ,3 /* 12*/ ,3 /* 13*/ ,3 /* 14*/ ,3 /* 15*/ ,
1784 /* 16*/ ,4 /* 17*/ ,4 /* 18*/ ,4 /* 19*/ ,4 /* 20*/ ,
1794 /* 21*/ ,4 /* 22*/ ,4 /* 23*/ ,4 /* 24*/ ,4 /* 25*/ ,
1804 /* 26*/ ,4 /* 27*/ ,4 /* 28*/ ,4 /* 29*/ ,4 /* 30*/ ,
1814 /* 31*/ ,5 /* 32*/ ,5 /* 33*/ ,5 /* 34*/ ,5 /* 35*/ ,
1825 /* 36*/ ,5 /* 37*/ ,5 /* 38*/ ,5 /* 39*/ ,5 /* 40*/ ,
1835 /* 41*/ ,5 /* 42*/ ,5 /* 43*/ ,5 /* 44*/ ,5 /* 45*/ ,
1845 /* 46*/ ,5 /* 47*/ ,5 /* 48*/ ,5 /* 49*/ ,5 /* 50*/ ,
1855 /* 51*/ ,5 /* 52*/ ,5 /* 53*/ ,5 /* 54*/ ,5 /* 55*/ ,
1865 /* 56*/ ,5 /* 57*/ ,5 /* 58*/ ,5 /* 59*/ ,5 /* 60*/ ,
1875 /* 61*/ ,5 /* 62*/ ,5 /* 63*/ ,6 /* 64*/ ,6 /* 65*/ ,
1886 /* 66*/ ,6 /* 67*/ ,6 /* 68*/ ,6 /* 69*/ ,6 /* 70*/ ,
1896 /* 71*/ ,6 /* 72*/ ,6 /* 73*/ ,6 /* 74*/ ,6 /* 75*/ ,
1906 /* 76*/ ,6 /* 77*/ ,6 /* 78*/ ,6 /* 79*/ ,6 /* 80*/ ,
1916 /* 81*/ ,6 /* 82*/ ,6 /* 83*/ ,6 /* 84*/ ,6 /* 85*/ ,
1926 /* 86*/ ,6 /* 87*/ ,6 /* 88*/ ,6 /* 89*/ ,6 /* 90*/ ,
1936 /* 91*/ ,6 /* 92*/ ,6 /* 93*/ ,6 /* 94*/ ,6 /* 95*/ ,
1946 /* 96*/ ,6 /* 97*/ ,6 /* 98*/ ,6 /* 99*/ ,6 /* 100*/ ,
1956 /* 101*/ ,6 /* 102*/ ,6 /* 103*/ ,6 /* 104*/ ,6 /* 105*/ ,
1966 /* 106*/ ,6 /* 107*/ ,6 /* 108*/ ,6 /* 109*/ ,6 /* 110*/ ,
1976 /* 111*/ ,6 /* 112*/ ,6 /* 113*/ ,6 /* 114*/ ,6 /* 115*/ ,
1986 /* 116*/ ,6 /* 117*/ ,6 /* 118*/ ,6 /* 119*/ ,6 /* 120*/ ,
1996 /* 121*/ ,6 /* 122*/ ,6 /* 123*/ ,6 /* 124*/ ,6 /* 125*/ ,
2006 /* 126*/ ,6 /* 127*/ ,7 /* 128*/ ,7 /* 129*/ ,7 /* 130*/ ,
2017 /* 131*/ ,7 /* 132*/ ,7 /* 133*/ ,7 /* 134*/ ,7 /* 135*/ ,
2027 /* 136*/ ,7 /* 137*/ ,7 /* 138*/ ,7 /* 139*/ ,7 /* 140*/ ,
2037 /* 141*/ ,7 /* 142*/ ,7 /* 143*/ ,7 /* 144*/ ,7 /* 145*/ ,
2047 /* 146*/ ,7 /* 147*/ ,7 /* 148*/ ,7 /* 149*/ ,7 /* 150*/ ,
2057 /* 151*/ ,7 /* 152*/ ,7 /* 153*/ ,7 /* 154*/ ,7 /* 155*/ ,
2067 /* 156*/ ,7 /* 157*/ ,7 /* 158*/ ,7 /* 159*/ ,7 /* 160*/ ,
2077 /* 161*/ ,7 /* 162*/ ,7 /* 163*/ ,7 /* 164*/ ,7 /* 165*/ ,
2087 /* 166*/ ,7 /* 167*/ ,7 /* 168*/ ,7 /* 169*/ ,7 /* 170*/ ,
2097 /* 171*/ ,7 /* 172*/ ,7 /* 173*/ ,7 /* 174*/ ,7 /* 175*/ ,
2107 /* 176*/ ,7 /* 177*/ ,7 /* 178*/ ,7 /* 179*/ ,7 /* 180*/ ,
2117 /* 181*/ ,7 /* 182*/ ,7 /* 183*/ ,7 /* 184*/ ,7 /* 185*/ ,
2127 /* 186*/ ,7 /* 187*/ ,7 /* 188*/ ,7 /* 189*/ ,7 /* 190*/ ,
2137 /* 191*/ ,7 /* 192*/ ,7 /* 193*/ ,7 /* 194*/ ,7 /* 195*/ ,
2147 /* 196*/ ,7 /* 197*/ ,7 /* 198*/ ,7 /* 199*/ ,7 /* 200*/ ,
2157 /* 201*/ ,7 /* 202*/ ,7 /* 203*/ ,7 /* 204*/ ,7 /* 205*/ ,
2167 /* 206*/ ,7 /* 207*/ ,7 /* 208*/ ,7 /* 209*/ ,7 /* 210*/ ,
2177 /* 211*/ ,7 /* 212*/ ,7 /* 213*/ ,7 /* 214*/ ,7 /* 215*/ ,
2187 /* 216*/ ,7 /* 217*/ ,7 /* 218*/ ,7 /* 219*/ ,7 /* 220*/ ,
2197 /* 221*/ ,7 /* 222*/ ,7 /* 223*/ ,7 /* 224*/ ,7 /* 225*/ ,
2207 /* 226*/ ,7 /* 227*/ ,7 /* 228*/ ,7 /* 229*/ ,7 /* 230*/ ,
2217 /* 231*/ ,7 /* 232*/ ,7 /* 233*/ ,7 /* 234*/ ,7 /* 235*/ ,
2227 /* 236*/ ,7 /* 237*/ ,7 /* 238*/ ,7 /* 239*/ ,7 /* 240*/ ,
2237 /* 241*/ ,7 /* 242*/ ,7 /* 243*/ ,7 /* 244*/ ,7 /* 245*/ ,
2247 /* 246*/ ,7 /* 247*/ ,7 /* 248*/ ,7 /* 249*/ ,7 /* 250*/ ,
2257 /* 251*/ ,7 /* 252*/ ,7 /* 253*/ ,7 /* 254*/ ,7 /* 255*/ }; // end _First_one
226
236 const DGtal::uint8_t Bits::myIndexInSetBits[ 8 ][ 256 ] = {
237 // Table for bit 0.
238 { 0 /*0*/, 1 /*1*/, 0 /*2*/, 1 /*3*/, 0 /*4*/, 1 /*5*/, 0 /*6*/, 1 /*7*/,
239 0 /*8*/, 1 /*9*/, 0 /*10*/, 1 /*11*/, 0 /*12*/, 1 /*13*/, 0 /*14*/, 1 /*15*/,
240 0 /*16*/, 1 /*17*/, 0 /*18*/, 1 /*19*/, 0 /*20*/, 1 /*21*/, 0 /*22*/, 1 /*23*/,
241 0 /*24*/, 1 /*25*/, 0 /*26*/, 1 /*27*/, 0 /*28*/, 1 /*29*/, 0 /*30*/, 1 /*31*/,
242 0 /*32*/, 1 /*33*/, 0 /*34*/, 1 /*35*/, 0 /*36*/, 1 /*37*/, 0 /*38*/, 1 /*39*/,
243 0 /*40*/, 1 /*41*/, 0 /*42*/, 1 /*43*/, 0 /*44*/, 1 /*45*/, 0 /*46*/, 1 /*47*/,
244 0 /*48*/, 1 /*49*/, 0 /*50*/, 1 /*51*/, 0 /*52*/, 1 /*53*/, 0 /*54*/, 1 /*55*/,
245 0 /*56*/, 1 /*57*/, 0 /*58*/, 1 /*59*/, 0 /*60*/, 1 /*61*/, 0 /*62*/, 1 /*63*/,
246 0 /*64*/, 1 /*65*/, 0 /*66*/, 1 /*67*/, 0 /*68*/, 1 /*69*/, 0 /*70*/, 1 /*71*/,
247 0 /*72*/, 1 /*73*/, 0 /*74*/, 1 /*75*/, 0 /*76*/, 1 /*77*/, 0 /*78*/, 1 /*79*/,
248 0 /*80*/, 1 /*81*/, 0 /*82*/, 1 /*83*/, 0 /*84*/, 1 /*85*/, 0 /*86*/, 1 /*87*/,
249 0 /*88*/, 1 /*89*/, 0 /*90*/, 1 /*91*/, 0 /*92*/, 1 /*93*/, 0 /*94*/, 1 /*95*/,
250 0 /*96*/, 1 /*97*/, 0 /*98*/, 1 /*99*/, 0 /*100*/, 1 /*101*/, 0 /*102*/, 1 /*103*/,
251 0 /*104*/, 1 /*105*/, 0 /*106*/, 1 /*107*/, 0 /*108*/, 1 /*109*/, 0 /*110*/, 1 /*111*/,
252 0 /*112*/, 1 /*113*/, 0 /*114*/, 1 /*115*/, 0 /*116*/, 1 /*117*/, 0 /*118*/, 1 /*119*/,
253 0 /*120*/, 1 /*121*/, 0 /*122*/, 1 /*123*/, 0 /*124*/, 1 /*125*/, 0 /*126*/, 1 /*127*/,
254 0 /*128*/, 1 /*129*/, 0 /*130*/, 1 /*131*/, 0 /*132*/, 1 /*133*/, 0 /*134*/, 1 /*135*/,
255 0 /*136*/, 1 /*137*/, 0 /*138*/, 1 /*139*/, 0 /*140*/, 1 /*141*/, 0 /*142*/, 1 /*143*/,
256 0 /*144*/, 1 /*145*/, 0 /*146*/, 1 /*147*/, 0 /*148*/, 1 /*149*/, 0 /*150*/, 1 /*151*/,
257 0 /*152*/, 1 /*153*/, 0 /*154*/, 1 /*155*/, 0 /*156*/, 1 /*157*/, 0 /*158*/, 1 /*159*/,
258 0 /*160*/, 1 /*161*/, 0 /*162*/, 1 /*163*/, 0 /*164*/, 1 /*165*/, 0 /*166*/, 1 /*167*/,
259 0 /*168*/, 1 /*169*/, 0 /*170*/, 1 /*171*/, 0 /*172*/, 1 /*173*/, 0 /*174*/, 1 /*175*/,
260 0 /*176*/, 1 /*177*/, 0 /*178*/, 1 /*179*/, 0 /*180*/, 1 /*181*/, 0 /*182*/, 1 /*183*/,
261 0 /*184*/, 1 /*185*/, 0 /*186*/, 1 /*187*/, 0 /*188*/, 1 /*189*/, 0 /*190*/, 1 /*191*/,
262 0 /*192*/, 1 /*193*/, 0 /*194*/, 1 /*195*/, 0 /*196*/, 1 /*197*/, 0 /*198*/, 1 /*199*/,
263 0 /*200*/, 1 /*201*/, 0 /*202*/, 1 /*203*/, 0 /*204*/, 1 /*205*/, 0 /*206*/, 1 /*207*/,
264 0 /*208*/, 1 /*209*/, 0 /*210*/, 1 /*211*/, 0 /*212*/, 1 /*213*/, 0 /*214*/, 1 /*215*/,
265 0 /*216*/, 1 /*217*/, 0 /*218*/, 1 /*219*/, 0 /*220*/, 1 /*221*/, 0 /*222*/, 1 /*223*/,
266 0 /*224*/, 1 /*225*/, 0 /*226*/, 1 /*227*/, 0 /*228*/, 1 /*229*/, 0 /*230*/, 1 /*231*/,
267 0 /*232*/, 1 /*233*/, 0 /*234*/, 1 /*235*/, 0 /*236*/, 1 /*237*/, 0 /*238*/, 1 /*239*/,
268 0 /*240*/, 1 /*241*/, 0 /*242*/, 1 /*243*/, 0 /*244*/, 1 /*245*/, 0 /*246*/, 1 /*247*/,
269 0 /*248*/, 1 /*249*/, 0 /*250*/, 1 /*251*/, 0 /*252*/, 1 /*253*/, 0 /*254*/, 1 /*255*/ },
270 // Table for bit 1.
271 { 0 /*0*/, 0 /*1*/, 1 /*2*/, 2 /*3*/, 0 /*4*/, 0 /*5*/, 1 /*6*/, 2 /*7*/,
272 0 /*8*/, 0 /*9*/, 1 /*10*/, 2 /*11*/, 0 /*12*/, 0 /*13*/, 1 /*14*/, 2 /*15*/,
273 0 /*16*/, 0 /*17*/, 1 /*18*/, 2 /*19*/, 0 /*20*/, 0 /*21*/, 1 /*22*/, 2 /*23*/,
274 0 /*24*/, 0 /*25*/, 1 /*26*/, 2 /*27*/, 0 /*28*/, 0 /*29*/, 1 /*30*/, 2 /*31*/,
275 0 /*32*/, 0 /*33*/, 1 /*34*/, 2 /*35*/, 0 /*36*/, 0 /*37*/, 1 /*38*/, 2 /*39*/,
276 0 /*40*/, 0 /*41*/, 1 /*42*/, 2 /*43*/, 0 /*44*/, 0 /*45*/, 1 /*46*/, 2 /*47*/,
277 0 /*48*/, 0 /*49*/, 1 /*50*/, 2 /*51*/, 0 /*52*/, 0 /*53*/, 1 /*54*/, 2 /*55*/,
278 0 /*56*/, 0 /*57*/, 1 /*58*/, 2 /*59*/, 0 /*60*/, 0 /*61*/, 1 /*62*/, 2 /*63*/,
279 0 /*64*/, 0 /*65*/, 1 /*66*/, 2 /*67*/, 0 /*68*/, 0 /*69*/, 1 /*70*/, 2 /*71*/,
280 0 /*72*/, 0 /*73*/, 1 /*74*/, 2 /*75*/, 0 /*76*/, 0 /*77*/, 1 /*78*/, 2 /*79*/,
281 0 /*80*/, 0 /*81*/, 1 /*82*/, 2 /*83*/, 0 /*84*/, 0 /*85*/, 1 /*86*/, 2 /*87*/,
282 0 /*88*/, 0 /*89*/, 1 /*90*/, 2 /*91*/, 0 /*92*/, 0 /*93*/, 1 /*94*/, 2 /*95*/,
283 0 /*96*/, 0 /*97*/, 1 /*98*/, 2 /*99*/, 0 /*100*/, 0 /*101*/, 1 /*102*/, 2 /*103*/,
284 0 /*104*/, 0 /*105*/, 1 /*106*/, 2 /*107*/, 0 /*108*/, 0 /*109*/, 1 /*110*/, 2 /*111*/,
285 0 /*112*/, 0 /*113*/, 1 /*114*/, 2 /*115*/, 0 /*116*/, 0 /*117*/, 1 /*118*/, 2 /*119*/,
286 0 /*120*/, 0 /*121*/, 1 /*122*/, 2 /*123*/, 0 /*124*/, 0 /*125*/, 1 /*126*/, 2 /*127*/,
287 0 /*128*/, 0 /*129*/, 1 /*130*/, 2 /*131*/, 0 /*132*/, 0 /*133*/, 1 /*134*/, 2 /*135*/,
288 0 /*136*/, 0 /*137*/, 1 /*138*/, 2 /*139*/, 0 /*140*/, 0 /*141*/, 1 /*142*/, 2 /*143*/,
289 0 /*144*/, 0 /*145*/, 1 /*146*/, 2 /*147*/, 0 /*148*/, 0 /*149*/, 1 /*150*/, 2 /*151*/,
290 0 /*152*/, 0 /*153*/, 1 /*154*/, 2 /*155*/, 0 /*156*/, 0 /*157*/, 1 /*158*/, 2 /*159*/,
291 0 /*160*/, 0 /*161*/, 1 /*162*/, 2 /*163*/, 0 /*164*/, 0 /*165*/, 1 /*166*/, 2 /*167*/,
292 0 /*168*/, 0 /*169*/, 1 /*170*/, 2 /*171*/, 0 /*172*/, 0 /*173*/, 1 /*174*/, 2 /*175*/,
293 0 /*176*/, 0 /*177*/, 1 /*178*/, 2 /*179*/, 0 /*180*/, 0 /*181*/, 1 /*182*/, 2 /*183*/,
294 0 /*184*/, 0 /*185*/, 1 /*186*/, 2 /*187*/, 0 /*188*/, 0 /*189*/, 1 /*190*/, 2 /*191*/,
295 0 /*192*/, 0 /*193*/, 1 /*194*/, 2 /*195*/, 0 /*196*/, 0 /*197*/, 1 /*198*/, 2 /*199*/,
296 0 /*200*/, 0 /*201*/, 1 /*202*/, 2 /*203*/, 0 /*204*/, 0 /*205*/, 1 /*206*/, 2 /*207*/,
297 0 /*208*/, 0 /*209*/, 1 /*210*/, 2 /*211*/, 0 /*212*/, 0 /*213*/, 1 /*214*/, 2 /*215*/,
298 0 /*216*/, 0 /*217*/, 1 /*218*/, 2 /*219*/, 0 /*220*/, 0 /*221*/, 1 /*222*/, 2 /*223*/,
299 0 /*224*/, 0 /*225*/, 1 /*226*/, 2 /*227*/, 0 /*228*/, 0 /*229*/, 1 /*230*/, 2 /*231*/,
300 0 /*232*/, 0 /*233*/, 1 /*234*/, 2 /*235*/, 0 /*236*/, 0 /*237*/, 1 /*238*/, 2 /*239*/,
301 0 /*240*/, 0 /*241*/, 1 /*242*/, 2 /*243*/, 0 /*244*/, 0 /*245*/, 1 /*246*/, 2 /*247*/,
302 0 /*248*/, 0 /*249*/, 1 /*250*/, 2 /*251*/, 0 /*252*/, 0 /*253*/, 1 /*254*/, 2 /*255*/},
303 // Table for bit 2.
304 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 1 /*4*/, 2 /*5*/, 2 /*6*/, 3 /*7*/,
305 0 /*8*/, 0 /*9*/, 0 /*10*/, 0 /*11*/, 1 /*12*/, 2 /*13*/, 2 /*14*/, 3 /*15*/,
306 0 /*16*/, 0 /*17*/, 0 /*18*/, 0 /*19*/, 1 /*20*/, 2 /*21*/, 2 /*22*/, 3 /*23*/,
307 0 /*24*/, 0 /*25*/, 0 /*26*/, 0 /*27*/, 1 /*28*/, 2 /*29*/, 2 /*30*/, 3 /*31*/,
308 0 /*32*/, 0 /*33*/, 0 /*34*/, 0 /*35*/, 1 /*36*/, 2 /*37*/, 2 /*38*/, 3 /*39*/,
309 0 /*40*/, 0 /*41*/, 0 /*42*/, 0 /*43*/, 1 /*44*/, 2 /*45*/, 2 /*46*/, 3 /*47*/,
310 0 /*48*/, 0 /*49*/, 0 /*50*/, 0 /*51*/, 1 /*52*/, 2 /*53*/, 2 /*54*/, 3 /*55*/,
311 0 /*56*/, 0 /*57*/, 0 /*58*/, 0 /*59*/, 1 /*60*/, 2 /*61*/, 2 /*62*/, 3 /*63*/,
312 0 /*64*/, 0 /*65*/, 0 /*66*/, 0 /*67*/, 1 /*68*/, 2 /*69*/, 2 /*70*/, 3 /*71*/,
313 0 /*72*/, 0 /*73*/, 0 /*74*/, 0 /*75*/, 1 /*76*/, 2 /*77*/, 2 /*78*/, 3 /*79*/,
314 0 /*80*/, 0 /*81*/, 0 /*82*/, 0 /*83*/, 1 /*84*/, 2 /*85*/, 2 /*86*/, 3 /*87*/,
315 0 /*88*/, 0 /*89*/, 0 /*90*/, 0 /*91*/, 1 /*92*/, 2 /*93*/, 2 /*94*/, 3 /*95*/,
316 0 /*96*/, 0 /*97*/, 0 /*98*/, 0 /*99*/, 1 /*100*/, 2 /*101*/, 2 /*102*/, 3 /*103*/,
317 0 /*104*/, 0 /*105*/, 0 /*106*/, 0 /*107*/, 1 /*108*/, 2 /*109*/, 2 /*110*/, 3 /*111*/,
318 0 /*112*/, 0 /*113*/, 0 /*114*/, 0 /*115*/, 1 /*116*/, 2 /*117*/, 2 /*118*/, 3 /*119*/,
319 0 /*120*/, 0 /*121*/, 0 /*122*/, 0 /*123*/, 1 /*124*/, 2 /*125*/, 2 /*126*/, 3 /*127*/,
320 0 /*128*/, 0 /*129*/, 0 /*130*/, 0 /*131*/, 1 /*132*/, 2 /*133*/, 2 /*134*/, 3 /*135*/,
321 0 /*136*/, 0 /*137*/, 0 /*138*/, 0 /*139*/, 1 /*140*/, 2 /*141*/, 2 /*142*/, 3 /*143*/,
322 0 /*144*/, 0 /*145*/, 0 /*146*/, 0 /*147*/, 1 /*148*/, 2 /*149*/, 2 /*150*/, 3 /*151*/,
323 0 /*152*/, 0 /*153*/, 0 /*154*/, 0 /*155*/, 1 /*156*/, 2 /*157*/, 2 /*158*/, 3 /*159*/,
324 0 /*160*/, 0 /*161*/, 0 /*162*/, 0 /*163*/, 1 /*164*/, 2 /*165*/, 2 /*166*/, 3 /*167*/,
325 0 /*168*/, 0 /*169*/, 0 /*170*/, 0 /*171*/, 1 /*172*/, 2 /*173*/, 2 /*174*/, 3 /*175*/,
326 0 /*176*/, 0 /*177*/, 0 /*178*/, 0 /*179*/, 1 /*180*/, 2 /*181*/, 2 /*182*/, 3 /*183*/,
327 0 /*184*/, 0 /*185*/, 0 /*186*/, 0 /*187*/, 1 /*188*/, 2 /*189*/, 2 /*190*/, 3 /*191*/,
328 0 /*192*/, 0 /*193*/, 0 /*194*/, 0 /*195*/, 1 /*196*/, 2 /*197*/, 2 /*198*/, 3 /*199*/,
329 0 /*200*/, 0 /*201*/, 0 /*202*/, 0 /*203*/, 1 /*204*/, 2 /*205*/, 2 /*206*/, 3 /*207*/,
330 0 /*208*/, 0 /*209*/, 0 /*210*/, 0 /*211*/, 1 /*212*/, 2 /*213*/, 2 /*214*/, 3 /*215*/,
331 0 /*216*/, 0 /*217*/, 0 /*218*/, 0 /*219*/, 1 /*220*/, 2 /*221*/, 2 /*222*/, 3 /*223*/,
332 0 /*224*/, 0 /*225*/, 0 /*226*/, 0 /*227*/, 1 /*228*/, 2 /*229*/, 2 /*230*/, 3 /*231*/,
333 0 /*232*/, 0 /*233*/, 0 /*234*/, 0 /*235*/, 1 /*236*/, 2 /*237*/, 2 /*238*/, 3 /*239*/,
334 0 /*240*/, 0 /*241*/, 0 /*242*/, 0 /*243*/, 1 /*244*/, 2 /*245*/, 2 /*246*/, 3 /*247*/,
335 0 /*248*/, 0 /*249*/, 0 /*250*/, 0 /*251*/, 1 /*252*/, 2 /*253*/, 2 /*254*/, 3 /*255*/},
336 // Table for bit 3.
337 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 0 /*4*/, 0 /*5*/, 0 /*6*/, 0 /*7*/,
338 1 /*8*/, 2 /*9*/, 2 /*10*/, 3 /*11*/, 2 /*12*/, 3 /*13*/, 3 /*14*/, 4 /*15*/,
339 0 /*16*/, 0 /*17*/, 0 /*18*/, 0 /*19*/, 0 /*20*/, 0 /*21*/, 0 /*22*/, 0 /*23*/,
340 1 /*24*/, 2 /*25*/, 2 /*26*/, 3 /*27*/, 2 /*28*/, 3 /*29*/, 3 /*30*/, 4 /*31*/,
341 0 /*32*/, 0 /*33*/, 0 /*34*/, 0 /*35*/, 0 /*36*/, 0 /*37*/, 0 /*38*/, 0 /*39*/,
342 1 /*40*/, 2 /*41*/, 2 /*42*/, 3 /*43*/, 2 /*44*/, 3 /*45*/, 3 /*46*/, 4 /*47*/,
343 0 /*48*/, 0 /*49*/, 0 /*50*/, 0 /*51*/, 0 /*52*/, 0 /*53*/, 0 /*54*/, 0 /*55*/,
344 1 /*56*/, 2 /*57*/, 2 /*58*/, 3 /*59*/, 2 /*60*/, 3 /*61*/, 3 /*62*/, 4 /*63*/,
345 0 /*64*/, 0 /*65*/, 0 /*66*/, 0 /*67*/, 0 /*68*/, 0 /*69*/, 0 /*70*/, 0 /*71*/,
346 1 /*72*/, 2 /*73*/, 2 /*74*/, 3 /*75*/, 2 /*76*/, 3 /*77*/, 3 /*78*/, 4 /*79*/,
347 0 /*80*/, 0 /*81*/, 0 /*82*/, 0 /*83*/, 0 /*84*/, 0 /*85*/, 0 /*86*/, 0 /*87*/,
348 1 /*88*/, 2 /*89*/, 2 /*90*/, 3 /*91*/, 2 /*92*/, 3 /*93*/, 3 /*94*/, 4 /*95*/,
349 0 /*96*/, 0 /*97*/, 0 /*98*/, 0 /*99*/, 0 /*100*/, 0 /*101*/, 0 /*102*/, 0 /*103*/,
350 1 /*104*/, 2 /*105*/, 2 /*106*/, 3 /*107*/, 2 /*108*/, 3 /*109*/, 3 /*110*/, 4 /*111*/,
351 0 /*112*/, 0 /*113*/, 0 /*114*/, 0 /*115*/, 0 /*116*/, 0 /*117*/, 0 /*118*/, 0 /*119*/,
352 1 /*120*/, 2 /*121*/, 2 /*122*/, 3 /*123*/, 2 /*124*/, 3 /*125*/, 3 /*126*/, 4 /*127*/,
353 0 /*128*/, 0 /*129*/, 0 /*130*/, 0 /*131*/, 0 /*132*/, 0 /*133*/, 0 /*134*/, 0 /*135*/,
354 1 /*136*/, 2 /*137*/, 2 /*138*/, 3 /*139*/, 2 /*140*/, 3 /*141*/, 3 /*142*/, 4 /*143*/,
355 0 /*144*/, 0 /*145*/, 0 /*146*/, 0 /*147*/, 0 /*148*/, 0 /*149*/, 0 /*150*/, 0 /*151*/,
356 1 /*152*/, 2 /*153*/, 2 /*154*/, 3 /*155*/, 2 /*156*/, 3 /*157*/, 3 /*158*/, 4 /*159*/,
357 0 /*160*/, 0 /*161*/, 0 /*162*/, 0 /*163*/, 0 /*164*/, 0 /*165*/, 0 /*166*/, 0 /*167*/,
358 1 /*168*/, 2 /*169*/, 2 /*170*/, 3 /*171*/, 2 /*172*/, 3 /*173*/, 3 /*174*/, 4 /*175*/,
359 0 /*176*/, 0 /*177*/, 0 /*178*/, 0 /*179*/, 0 /*180*/, 0 /*181*/, 0 /*182*/, 0 /*183*/,
360 1 /*184*/, 2 /*185*/, 2 /*186*/, 3 /*187*/, 2 /*188*/, 3 /*189*/, 3 /*190*/, 4 /*191*/,
361 0 /*192*/, 0 /*193*/, 0 /*194*/, 0 /*195*/, 0 /*196*/, 0 /*197*/, 0 /*198*/, 0 /*199*/,
362 1 /*200*/, 2 /*201*/, 2 /*202*/, 3 /*203*/, 2 /*204*/, 3 /*205*/, 3 /*206*/, 4 /*207*/,
363 0 /*208*/, 0 /*209*/, 0 /*210*/, 0 /*211*/, 0 /*212*/, 0 /*213*/, 0 /*214*/, 0 /*215*/,
364 1 /*216*/, 2 /*217*/, 2 /*218*/, 3 /*219*/, 2 /*220*/, 3 /*221*/, 3 /*222*/, 4 /*223*/,
365 0 /*224*/, 0 /*225*/, 0 /*226*/, 0 /*227*/, 0 /*228*/, 0 /*229*/, 0 /*230*/, 0 /*231*/,
366 1 /*232*/, 2 /*233*/, 2 /*234*/, 3 /*235*/, 2 /*236*/, 3 /*237*/, 3 /*238*/, 4 /*239*/,
367 0 /*240*/, 0 /*241*/, 0 /*242*/, 0 /*243*/, 0 /*244*/, 0 /*245*/, 0 /*246*/, 0 /*247*/,
368 1 /*248*/, 2 /*249*/, 2 /*250*/, 3 /*251*/, 2 /*252*/, 3 /*253*/, 3 /*254*/, 4 /*255*/},
369 // Table for bit 4.
370 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 0 /*4*/, 0 /*5*/, 0 /*6*/, 0 /*7*/,
371 0 /*8*/, 0 /*9*/, 0 /*10*/, 0 /*11*/, 0 /*12*/, 0 /*13*/, 0 /*14*/, 0 /*15*/,
372 1 /*16*/, 2 /*17*/, 2 /*18*/, 3 /*19*/, 2 /*20*/, 3 /*21*/, 3 /*22*/, 4 /*23*/,
373 2 /*24*/, 3 /*25*/, 3 /*26*/, 4 /*27*/, 3 /*28*/, 4 /*29*/, 4 /*30*/, 5 /*31*/,
374 0 /*32*/, 0 /*33*/, 0 /*34*/, 0 /*35*/, 0 /*36*/, 0 /*37*/, 0 /*38*/, 0 /*39*/,
375 0 /*40*/, 0 /*41*/, 0 /*42*/, 0 /*43*/, 0 /*44*/, 0 /*45*/, 0 /*46*/, 0 /*47*/,
376 1 /*48*/, 2 /*49*/, 2 /*50*/, 3 /*51*/, 2 /*52*/, 3 /*53*/, 3 /*54*/, 4 /*55*/,
377 2 /*56*/, 3 /*57*/, 3 /*58*/, 4 /*59*/, 3 /*60*/, 4 /*61*/, 4 /*62*/, 5 /*63*/,
378 0 /*64*/, 0 /*65*/, 0 /*66*/, 0 /*67*/, 0 /*68*/, 0 /*69*/, 0 /*70*/, 0 /*71*/,
379 0 /*72*/, 0 /*73*/, 0 /*74*/, 0 /*75*/, 0 /*76*/, 0 /*77*/, 0 /*78*/, 0 /*79*/,
380 1 /*80*/, 2 /*81*/, 2 /*82*/, 3 /*83*/, 2 /*84*/, 3 /*85*/, 3 /*86*/, 4 /*87*/,
381 2 /*88*/, 3 /*89*/, 3 /*90*/, 4 /*91*/, 3 /*92*/, 4 /*93*/, 4 /*94*/, 5 /*95*/,
382 0 /*96*/, 0 /*97*/, 0 /*98*/, 0 /*99*/, 0 /*100*/, 0 /*101*/, 0 /*102*/, 0 /*103*/,
383 0 /*104*/, 0 /*105*/, 0 /*106*/, 0 /*107*/, 0 /*108*/, 0 /*109*/, 0 /*110*/, 0 /*111*/,
384 1 /*112*/, 2 /*113*/, 2 /*114*/, 3 /*115*/, 2 /*116*/, 3 /*117*/, 3 /*118*/, 4 /*119*/,
385 2 /*120*/, 3 /*121*/, 3 /*122*/, 4 /*123*/, 3 /*124*/, 4 /*125*/, 4 /*126*/, 5 /*127*/,
386 0 /*128*/, 0 /*129*/, 0 /*130*/, 0 /*131*/, 0 /*132*/, 0 /*133*/, 0 /*134*/, 0 /*135*/,
387 0 /*136*/, 0 /*137*/, 0 /*138*/, 0 /*139*/, 0 /*140*/, 0 /*141*/, 0 /*142*/, 0 /*143*/,
388 1 /*144*/, 2 /*145*/, 2 /*146*/, 3 /*147*/, 2 /*148*/, 3 /*149*/, 3 /*150*/, 4 /*151*/,
389 2 /*152*/, 3 /*153*/, 3 /*154*/, 4 /*155*/, 3 /*156*/, 4 /*157*/, 4 /*158*/, 5 /*159*/,
390 0 /*160*/, 0 /*161*/, 0 /*162*/, 0 /*163*/, 0 /*164*/, 0 /*165*/, 0 /*166*/, 0 /*167*/,
391 0 /*168*/, 0 /*169*/, 0 /*170*/, 0 /*171*/, 0 /*172*/, 0 /*173*/, 0 /*174*/, 0 /*175*/,
392 1 /*176*/, 2 /*177*/, 2 /*178*/, 3 /*179*/, 2 /*180*/, 3 /*181*/, 3 /*182*/, 4 /*183*/,
393 2 /*184*/, 3 /*185*/, 3 /*186*/, 4 /*187*/, 3 /*188*/, 4 /*189*/, 4 /*190*/, 5 /*191*/,
394 0 /*192*/, 0 /*193*/, 0 /*194*/, 0 /*195*/, 0 /*196*/, 0 /*197*/, 0 /*198*/, 0 /*199*/,
395 0 /*200*/, 0 /*201*/, 0 /*202*/, 0 /*203*/, 0 /*204*/, 0 /*205*/, 0 /*206*/, 0 /*207*/,
396 1 /*208*/, 2 /*209*/, 2 /*210*/, 3 /*211*/, 2 /*212*/, 3 /*213*/, 3 /*214*/, 4 /*215*/,
397 2 /*216*/, 3 /*217*/, 3 /*218*/, 4 /*219*/, 3 /*220*/, 4 /*221*/, 4 /*222*/, 5 /*223*/,
398 0 /*224*/, 0 /*225*/, 0 /*226*/, 0 /*227*/, 0 /*228*/, 0 /*229*/, 0 /*230*/, 0 /*231*/,
399 0 /*232*/, 0 /*233*/, 0 /*234*/, 0 /*235*/, 0 /*236*/, 0 /*237*/, 0 /*238*/, 0 /*239*/,
400 1 /*240*/, 2 /*241*/, 2 /*242*/, 3 /*243*/, 2 /*244*/, 3 /*245*/, 3 /*246*/, 4 /*247*/,
401 2 /*248*/, 3 /*249*/, 3 /*250*/, 4 /*251*/, 3 /*252*/, 4 /*253*/, 4 /*254*/, 5 /*255*/ },
402 // Table for bit 5.
403 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 0 /*4*/, 0 /*5*/, 0 /*6*/, 0 /*7*/,
404 0 /*8*/, 0 /*9*/, 0 /*10*/, 0 /*11*/, 0 /*12*/, 0 /*13*/, 0 /*14*/, 0 /*15*/,
405 0 /*16*/, 0 /*17*/, 0 /*18*/, 0 /*19*/, 0 /*20*/, 0 /*21*/, 0 /*22*/, 0 /*23*/,
406 0 /*24*/, 0 /*25*/, 0 /*26*/, 0 /*27*/, 0 /*28*/, 0 /*29*/, 0 /*30*/, 0 /*31*/,
407 1 /*32*/, 2 /*33*/, 2 /*34*/, 3 /*35*/, 2 /*36*/, 3 /*37*/, 3 /*38*/, 4 /*39*/,
408 2 /*40*/, 3 /*41*/, 3 /*42*/, 4 /*43*/, 3 /*44*/, 4 /*45*/, 4 /*46*/, 5 /*47*/,
409 2 /*48*/, 3 /*49*/, 3 /*50*/, 4 /*51*/, 3 /*52*/, 4 /*53*/, 4 /*54*/, 5 /*55*/,
410 3 /*56*/, 4 /*57*/, 4 /*58*/, 5 /*59*/, 4 /*60*/, 5 /*61*/, 5 /*62*/, 6 /*63*/,
411 0 /*64*/, 0 /*65*/, 0 /*66*/, 0 /*67*/, 0 /*68*/, 0 /*69*/, 0 /*70*/, 0 /*71*/,
412 0 /*72*/, 0 /*73*/, 0 /*74*/, 0 /*75*/, 0 /*76*/, 0 /*77*/, 0 /*78*/, 0 /*79*/,
413 0 /*80*/, 0 /*81*/, 0 /*82*/, 0 /*83*/, 0 /*84*/, 0 /*85*/, 0 /*86*/, 0 /*87*/,
414 0 /*88*/, 0 /*89*/, 0 /*90*/, 0 /*91*/, 0 /*92*/, 0 /*93*/, 0 /*94*/, 0 /*95*/,
415 1 /*96*/, 2 /*97*/, 2 /*98*/, 3 /*99*/, 2 /*100*/, 3 /*101*/, 3 /*102*/, 4 /*103*/,
416 2 /*104*/, 3 /*105*/, 3 /*106*/, 4 /*107*/, 3 /*108*/, 4 /*109*/, 4 /*110*/, 5 /*111*/,
417 2 /*112*/, 3 /*113*/, 3 /*114*/, 4 /*115*/, 3 /*116*/, 4 /*117*/, 4 /*118*/, 5 /*119*/,
418 3 /*120*/, 4 /*121*/, 4 /*122*/, 5 /*123*/, 4 /*124*/, 5 /*125*/, 5 /*126*/, 6 /*127*/,
419 0 /*128*/, 0 /*129*/, 0 /*130*/, 0 /*131*/, 0 /*132*/, 0 /*133*/, 0 /*134*/, 0 /*135*/,
420 0 /*136*/, 0 /*137*/, 0 /*138*/, 0 /*139*/, 0 /*140*/, 0 /*141*/, 0 /*142*/, 0 /*143*/,
421 0 /*144*/, 0 /*145*/, 0 /*146*/, 0 /*147*/, 0 /*148*/, 0 /*149*/, 0 /*150*/, 0 /*151*/,
422 0 /*152*/, 0 /*153*/, 0 /*154*/, 0 /*155*/, 0 /*156*/, 0 /*157*/, 0 /*158*/, 0 /*159*/,
423 1 /*160*/, 2 /*161*/, 2 /*162*/, 3 /*163*/, 2 /*164*/, 3 /*165*/, 3 /*166*/, 4 /*167*/,
424 2 /*168*/, 3 /*169*/, 3 /*170*/, 4 /*171*/, 3 /*172*/, 4 /*173*/, 4 /*174*/, 5 /*175*/,
425 2 /*176*/, 3 /*177*/, 3 /*178*/, 4 /*179*/, 3 /*180*/, 4 /*181*/, 4 /*182*/, 5 /*183*/,
426 3 /*184*/, 4 /*185*/, 4 /*186*/, 5 /*187*/, 4 /*188*/, 5 /*189*/, 5 /*190*/, 6 /*191*/,
427 0 /*192*/, 0 /*193*/, 0 /*194*/, 0 /*195*/, 0 /*196*/, 0 /*197*/, 0 /*198*/, 0 /*199*/,
428 0 /*200*/, 0 /*201*/, 0 /*202*/, 0 /*203*/, 0 /*204*/, 0 /*205*/, 0 /*206*/, 0 /*207*/,
429 0 /*208*/, 0 /*209*/, 0 /*210*/, 0 /*211*/, 0 /*212*/, 0 /*213*/, 0 /*214*/, 0 /*215*/,
430 0 /*216*/, 0 /*217*/, 0 /*218*/, 0 /*219*/, 0 /*220*/, 0 /*221*/, 0 /*222*/, 0 /*223*/,
431 1 /*224*/, 2 /*225*/, 2 /*226*/, 3 /*227*/, 2 /*228*/, 3 /*229*/, 3 /*230*/, 4 /*231*/,
432 2 /*232*/, 3 /*233*/, 3 /*234*/, 4 /*235*/, 3 /*236*/, 4 /*237*/, 4 /*238*/, 5 /*239*/,
433 2 /*240*/, 3 /*241*/, 3 /*242*/, 4 /*243*/, 3 /*244*/, 4 /*245*/, 4 /*246*/, 5 /*247*/,
434 3 /*248*/, 4 /*249*/, 4 /*250*/, 5 /*251*/, 4 /*252*/, 5 /*253*/, 5 /*254*/, 6 /*255*/},
435 // Table for bit 6.
436 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 0 /*4*/, 0 /*5*/, 0 /*6*/, 0 /*7*/,
437 0 /*8*/, 0 /*9*/, 0 /*10*/, 0 /*11*/, 0 /*12*/, 0 /*13*/, 0 /*14*/, 0 /*15*/,
438 0 /*16*/, 0 /*17*/, 0 /*18*/, 0 /*19*/, 0 /*20*/, 0 /*21*/, 0 /*22*/, 0 /*23*/,
439 0 /*24*/, 0 /*25*/, 0 /*26*/, 0 /*27*/, 0 /*28*/, 0 /*29*/, 0 /*30*/, 0 /*31*/,
440 0 /*32*/, 0 /*33*/, 0 /*34*/, 0 /*35*/, 0 /*36*/, 0 /*37*/, 0 /*38*/, 0 /*39*/,
441 0 /*40*/, 0 /*41*/, 0 /*42*/, 0 /*43*/, 0 /*44*/, 0 /*45*/, 0 /*46*/, 0 /*47*/,
442 0 /*48*/, 0 /*49*/, 0 /*50*/, 0 /*51*/, 0 /*52*/, 0 /*53*/, 0 /*54*/, 0 /*55*/,
443 0 /*56*/, 0 /*57*/, 0 /*58*/, 0 /*59*/, 0 /*60*/, 0 /*61*/, 0 /*62*/, 0 /*63*/,
444 1 /*64*/, 2 /*65*/, 2 /*66*/, 3 /*67*/, 2 /*68*/, 3 /*69*/, 3 /*70*/, 4 /*71*/,
445 2 /*72*/, 3 /*73*/, 3 /*74*/, 4 /*75*/, 3 /*76*/, 4 /*77*/, 4 /*78*/, 5 /*79*/,
446 2 /*80*/, 3 /*81*/, 3 /*82*/, 4 /*83*/, 3 /*84*/, 4 /*85*/, 4 /*86*/, 5 /*87*/,
447 3 /*88*/, 4 /*89*/, 4 /*90*/, 5 /*91*/, 4 /*92*/, 5 /*93*/, 5 /*94*/, 6 /*95*/,
448 2 /*96*/, 3 /*97*/, 3 /*98*/, 4 /*99*/, 3 /*100*/, 4 /*101*/, 4 /*102*/, 5 /*103*/,
449 3 /*104*/, 4 /*105*/, 4 /*106*/, 5 /*107*/, 4 /*108*/, 5 /*109*/, 5 /*110*/, 6 /*111*/,
450 3 /*112*/, 4 /*113*/, 4 /*114*/, 5 /*115*/, 4 /*116*/, 5 /*117*/, 5 /*118*/, 6 /*119*/,
451 4 /*120*/, 5 /*121*/, 5 /*122*/, 6 /*123*/, 5 /*124*/, 6 /*125*/, 6 /*126*/, 7 /*127*/,
452 0 /*128*/, 0 /*129*/, 0 /*130*/, 0 /*131*/, 0 /*132*/, 0 /*133*/, 0 /*134*/, 0 /*135*/,
453 0 /*136*/, 0 /*137*/, 0 /*138*/, 0 /*139*/, 0 /*140*/, 0 /*141*/, 0 /*142*/, 0 /*143*/,
454 0 /*144*/, 0 /*145*/, 0 /*146*/, 0 /*147*/, 0 /*148*/, 0 /*149*/, 0 /*150*/, 0 /*151*/,
455 0 /*152*/, 0 /*153*/, 0 /*154*/, 0 /*155*/, 0 /*156*/, 0 /*157*/, 0 /*158*/, 0 /*159*/,
456 0 /*160*/, 0 /*161*/, 0 /*162*/, 0 /*163*/, 0 /*164*/, 0 /*165*/, 0 /*166*/, 0 /*167*/,
457 0 /*168*/, 0 /*169*/, 0 /*170*/, 0 /*171*/, 0 /*172*/, 0 /*173*/, 0 /*174*/, 0 /*175*/,
458 0 /*176*/, 0 /*177*/, 0 /*178*/, 0 /*179*/, 0 /*180*/, 0 /*181*/, 0 /*182*/, 0 /*183*/,
459 0 /*184*/, 0 /*185*/, 0 /*186*/, 0 /*187*/, 0 /*188*/, 0 /*189*/, 0 /*190*/, 0 /*191*/,
460 1 /*192*/, 2 /*193*/, 2 /*194*/, 3 /*195*/, 2 /*196*/, 3 /*197*/, 3 /*198*/, 4 /*199*/,
461 2 /*200*/, 3 /*201*/, 3 /*202*/, 4 /*203*/, 3 /*204*/, 4 /*205*/, 4 /*206*/, 5 /*207*/,
462 2 /*208*/, 3 /*209*/, 3 /*210*/, 4 /*211*/, 3 /*212*/, 4 /*213*/, 4 /*214*/, 5 /*215*/,
463 3 /*216*/, 4 /*217*/, 4 /*218*/, 5 /*219*/, 4 /*220*/, 5 /*221*/, 5 /*222*/, 6 /*223*/,
464 2 /*224*/, 3 /*225*/, 3 /*226*/, 4 /*227*/, 3 /*228*/, 4 /*229*/, 4 /*230*/, 5 /*231*/,
465 3 /*232*/, 4 /*233*/, 4 /*234*/, 5 /*235*/, 4 /*236*/, 5 /*237*/, 5 /*238*/, 6 /*239*/,
466 3 /*240*/, 4 /*241*/, 4 /*242*/, 5 /*243*/, 4 /*244*/, 5 /*245*/, 5 /*246*/, 6 /*247*/,
467 4 /*248*/, 5 /*249*/, 5 /*250*/, 6 /*251*/, 5 /*252*/, 6 /*253*/, 6 /*254*/, 7 /*255*/ },
468 // Table for bit 7.
469 { 0 /*0*/, 0 /*1*/, 0 /*2*/, 0 /*3*/, 0 /*4*/, 0 /*5*/, 0 /*6*/, 0 /*7*/,
470 0 /*8*/, 0 /*9*/, 0 /*10*/, 0 /*11*/, 0 /*12*/, 0 /*13*/, 0 /*14*/, 0 /*15*/,
471 0 /*16*/, 0 /*17*/, 0 /*18*/, 0 /*19*/, 0 /*20*/, 0 /*21*/, 0 /*22*/, 0 /*23*/,
472 0 /*24*/, 0 /*25*/, 0 /*26*/, 0 /*27*/, 0 /*28*/, 0 /*29*/, 0 /*30*/, 0 /*31*/,
473 0 /*32*/, 0 /*33*/, 0 /*34*/, 0 /*35*/, 0 /*36*/, 0 /*37*/, 0 /*38*/, 0 /*39*/,
474 0 /*40*/, 0 /*41*/, 0 /*42*/, 0 /*43*/, 0 /*44*/, 0 /*45*/, 0 /*46*/, 0 /*47*/,
475 0 /*48*/, 0 /*49*/, 0 /*50*/, 0 /*51*/, 0 /*52*/, 0 /*53*/, 0 /*54*/, 0 /*55*/,
476 0 /*56*/, 0 /*57*/, 0 /*58*/, 0 /*59*/, 0 /*60*/, 0 /*61*/, 0 /*62*/, 0 /*63*/,
477 0 /*64*/, 0 /*65*/, 0 /*66*/, 0 /*67*/, 0 /*68*/, 0 /*69*/, 0 /*70*/, 0 /*71*/,
478 0 /*72*/, 0 /*73*/, 0 /*74*/, 0 /*75*/, 0 /*76*/, 0 /*77*/, 0 /*78*/, 0 /*79*/,
479 0 /*80*/, 0 /*81*/, 0 /*82*/, 0 /*83*/, 0 /*84*/, 0 /*85*/, 0 /*86*/, 0 /*87*/,
480 0 /*88*/, 0 /*89*/, 0 /*90*/, 0 /*91*/, 0 /*92*/, 0 /*93*/, 0 /*94*/, 0 /*95*/,
481 0 /*96*/, 0 /*97*/, 0 /*98*/, 0 /*99*/, 0 /*100*/, 0 /*101*/, 0 /*102*/, 0 /*103*/,
482 0 /*104*/, 0 /*105*/, 0 /*106*/, 0 /*107*/, 0 /*108*/, 0 /*109*/, 0 /*110*/, 0 /*111*/,
483 0 /*112*/, 0 /*113*/, 0 /*114*/, 0 /*115*/, 0 /*116*/, 0 /*117*/, 0 /*118*/, 0 /*119*/,
484 0 /*120*/, 0 /*121*/, 0 /*122*/, 0 /*123*/, 0 /*124*/, 0 /*125*/, 0 /*126*/, 0 /*127*/,
485 1 /*128*/, 2 /*129*/, 2 /*130*/, 3 /*131*/, 2 /*132*/, 3 /*133*/, 3 /*134*/, 4 /*135*/,
486 2 /*136*/, 3 /*137*/, 3 /*138*/, 4 /*139*/, 3 /*140*/, 4 /*141*/, 4 /*142*/, 5 /*143*/,
487 2 /*144*/, 3 /*145*/, 3 /*146*/, 4 /*147*/, 3 /*148*/, 4 /*149*/, 4 /*150*/, 5 /*151*/,
488 3 /*152*/, 4 /*153*/, 4 /*154*/, 5 /*155*/, 4 /*156*/, 5 /*157*/, 5 /*158*/, 6 /*159*/,
489 2 /*160*/, 3 /*161*/, 3 /*162*/, 4 /*163*/, 3 /*164*/, 4 /*165*/, 4 /*166*/, 5 /*167*/,
490 3 /*168*/, 4 /*169*/, 4 /*170*/, 5 /*171*/, 4 /*172*/, 5 /*173*/, 5 /*174*/, 6 /*175*/,
491 3 /*176*/, 4 /*177*/, 4 /*178*/, 5 /*179*/, 4 /*180*/, 5 /*181*/, 5 /*182*/, 6 /*183*/,
492 4 /*184*/, 5 /*185*/, 5 /*186*/, 6 /*187*/, 5 /*188*/, 6 /*189*/, 6 /*190*/, 7 /*191*/,
493 2 /*192*/, 3 /*193*/, 3 /*194*/, 4 /*195*/, 3 /*196*/, 4 /*197*/, 4 /*198*/, 5 /*199*/,
494 3 /*200*/, 4 /*201*/, 4 /*202*/, 5 /*203*/, 4 /*204*/, 5 /*205*/, 5 /*206*/, 6 /*207*/,
495 3 /*208*/, 4 /*209*/, 4 /*210*/, 5 /*211*/, 4 /*212*/, 5 /*213*/, 5 /*214*/, 6 /*215*/,
496 4 /*216*/, 5 /*217*/, 5 /*218*/, 6 /*219*/, 5 /*220*/, 6 /*221*/, 6 /*222*/, 7 /*223*/,
497 3 /*224*/, 4 /*225*/, 4 /*226*/, 5 /*227*/, 4 /*228*/, 5 /*229*/, 5 /*230*/, 6 /*231*/,
498 4 /*232*/, 5 /*233*/, 5 /*234*/, 6 /*235*/, 5 /*236*/, 6 /*237*/, 6 /*238*/, 7 /*239*/,
499 4 /*240*/, 5 /*241*/, 5 /*242*/, 6 /*243*/, 5 /*244*/, 6 /*245*/, 6 /*246*/, 7 /*247*/,
500 5 /*248*/, 6 /*249*/, 6 /*250*/, 7 /*251*/, 6 /*252*/, 7 /*253*/, 7 /*254*/, 8 /*255*/ }
501 };
502
503}
504// //
DGtal is the top-level namespace which contains all DGtal functions and types.
boost::uint8_t uint8_t
unsigned 8-bit integer.
Definition: BasicTypes.h:59
static const DGtal::uint8_t myIndexInSetBits[8][256]
Definition: Bits.h:411
static const DGtal::uint8_t myMSB[256]
Definition: Bits.h:400
static const DGtal::uint8_t myBitCount[256]
Definition: Bits.h:390
static const DGtal::uint8_t myLSB[256]
Definition: Bits.h:395