44 for (
int i=0; i < 64; i++) b_[i] = b[i];
60 return (std::memcmp(b_, b.b_,
sizeof b_) == 0);
62 bool neverMatch(
const Board& m)
const {
65 for (
int i=0; i < 64; i++) {
69 if (b ==
WP && a !=
WP && (i/8) == 1)
return true;
70 if (b ==
BP && a !=
BP && (i/8) == 6)
return true;
93 0x600029a, 0xe000ca2, 0x5000195,
97 0x600029a, 0xe000d24, 0x5000052,
99 0x600029a, 0xe000d24, 0x5000052, 0xd000fad,
101 0x600029a, 0xe000d2c,
103 0x600029a, 0xe000d2c, 0x5000195,
105 0x600029a, 0xe000dae,
107 0x600029a, 0xd000fad,
109 0x600029a, 0xd000fad, 0x5000052,
111 0x600029a, 0xd000fad, 0x5000052, 0xe000d2c,
113 0x600029a, 0xd000fad, 0x5000052, 0xe000dae,
117 0x60002db, 0xe000ce3,
119 0x60002db, 0xe000ce3, 0x600029a,
121 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa,
123 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000052,
125 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000052, 0xd000fad,
127 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000052, 0xd000fad, 0x5000195,
129 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000195,
131 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000195, 0xd000fad,
133 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000195, 0xd000fad, 0x5000052,
135 0x60002db, 0xe000ce3, 0x600029a, 0xe000caa, 0x5000195, 0xd000fad, 0x5000052, 0xe000d2c,
137 0x60002db, 0xe000ce3, 0x600029a, 0xec008da,
139 0x60002db, 0xe000ce3, 0x600029a, 0xec008da, 0x5000195,
141 0x60002db, 0xe000ce3, 0x600029a, 0xec008da, 0x5000195, 0xd000fad,
143 0x60002db, 0xe000ce3, 0x600029a, 0xe000d2c,
145 0x60002db, 0xe000ce3, 0x600029a, 0xe000d2c, 0x5000052,
147 0x60002db, 0xe000ce3, 0x600029a, 0xe000d2c, 0x5000052, 0xe000caa,
149 0x60002db, 0xe000ce3, 0x600029a, 0xe000d2c, 0x5000052, 0xd000fad,
151 0x60002db, 0xe000ce3, 0x600029a, 0xe000d2c, 0x5000195,
153 0x60002db, 0xe000ce3, 0x5000195,
155 0x60002db, 0xe000ce3, 0x5000195, 0xd000fad,
157 0x60002db, 0xe000ce3, 0x5000195, 0xd000fad, 0x600029a,
159 0x60002db, 0xe000ce3, 0x5000195, 0xd000fad, 0x600029a, 0xe000caa,
161 0x60002db, 0xe000ce3, 0x5000195, 0xd000fad, 0x600029a, 0xe000d2c,
163 0x60002db, 0xe000ceb,
165 0x60002db, 0xe000ceb, 0x5000195,
167 0x60002db, 0xe000d2c,
169 0x60002db, 0xe000d2c, 0x600029a,
171 0x60002db, 0xe000d2c, 0x600029a, 0xd000fad,
173 0x60002db, 0xe000d65,
175 0x60002db, 0xe000d65, 0x6000396, 0xd000fad, 0x400014e,
177 0x60002db, 0xe000dae,
179 0x60002db, 0xe000dae, 0x600029a, 0xc000f76,
181 0x60002db, 0xd000fad,
183 0x60002db, 0xd000fad, 0x40000a6,
185 0x60002db, 0xd000fad, 0x40000a6, 0xd000b5c,
187 0x60002db, 0xd000fad, 0x600029a,
189 0x60002db, 0xd000fad, 0x600029a, 0xe000ca2,
191 0x60002db, 0xd000fad, 0x600029a, 0xe000ca2, 0x60006e3,
193 0x60002db, 0xd000fad, 0x600029a, 0xe000ca2, 0x60006e3, 0xe000c61,
195 0x60002db, 0xd000fad, 0x600029a, 0xe000ca2, 0x60006e3, 0xe000c61, 0x6c006a1, 0xe000c28,
197 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x6000396,
199 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x6000396, 0xe000ce3,
201 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052,
203 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59,
205 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59, 0x6000314,
207 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59, 0x6000314, 0x900cf3f,
209 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59, 0x20000ca,
211 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59, 0x20000ca, 0x900cf3f,
213 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xc000f59, 0x20000ca, 0x900cf3f, 0x6000210, 0x4ca00652, 0x2800292,
215 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000052, 0xe000ce3,
217 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195,
219 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000c69,
221 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000c69, 0x6000210,
223 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000c69, 0x6000396,
225 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000c69, 0x6000396, 0xc000ea8,
227 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0x4c000f59,
229 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000ce3,
231 0x60002db, 0xd000fad, 0x600029a, 0xe000d2c, 0x5000195, 0xe000ce3, 0x5000052,
233 0x60002db, 0xd000fad, 0x600029a, 0xe000dae,
235 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76,
237 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c,
239 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb,
241 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x400014c, 0x900cf3f,
243 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x400014c, 0x900cf3f, 0x5000195,
245 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x6000355,
247 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x6000355, 0x900cf3f,
249 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x6000355, 0x900cf3f, 0x4000094,
251 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x5000195, 0x900cf3f,
253 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x5000195, 0x900cf3f, 0x400014c,
255 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x5000195, 0x900cf3f, 0x400014c, 0xe000d24,
257 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x5000195, 0x900cf3f, 0x400014c, 0xe000d24, 0x100c107,
259 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xc000f76, 0x600031c, 0xe000ceb, 0x5000195, 0x900cf3f, 0x400014c, 0xe000d24, 0x100c107, 0xd000e6a, 0x60006e3, 0xd000ab4,
261 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xe000ce3,
263 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xe000ce3, 0x5000195,
265 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xe000ce3, 0x6c006a3, 0xdc00b63,
267 0x60002db, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052, 0xe000ce3, 0x6c006a3, 0xdc00b63, 0x600031c, 0xda008d2, 0x6a00252, 0xc000f76,
269 0x60002db, 0xd000fad, 0x5000195,
271 0x60002db, 0xd000fad, 0x5000195, 0xe000ca2,
273 0x60002db, 0xd000fad, 0x5000195, 0xe000ce3,
275 0x60002db, 0xd000fad, 0x5000195, 0xe000d2c,
277 0x60002db, 0xd000fad, 0x5000195, 0xe000d2c, 0x40000a6,
279 0x60002db, 0xd000fad, 0x5000195, 0xe000d2c, 0x600029a,
281 0x60002db, 0xd000fad, 0x5000195, 0xe000dae,
283 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x40000a6,
285 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x600029a,
287 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x600029a, 0xc000f76,
289 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x600029a, 0xc000f76, 0x5000052,
291 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x600029a, 0xc000f76, 0x5000052, 0x900cf3f,
293 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x6000396,
295 0x60002db, 0xd000fad, 0x5000195, 0xe000dae, 0x6000396, 0xc000f76, 0x400014e,
299 0x600031c, 0xe000ca2,
301 0x600031c, 0xe000ca2, 0x6000292,
303 0x600031c, 0xe000ca2, 0x6000292, 0xe000ce3, 0x6c00723, 0xac00ee3, 0x60002db,
305 0x600031c, 0xe000ca2, 0x6000292, 0xe000ce3, 0x6c00723, 0xac00ee3, 0x60002db, 0xd000fad,
307 0x600031c, 0xe000ca2, 0x6000292, 0xd000fad, 0x6000724, 0xd000b63,
309 0x600031c, 0xe000ca2, 0x6000292, 0xd000fad, 0x6000724, 0xd000b63, 0x60002db, 0xec0089b,
311 0x600031c, 0xe000ca2, 0x60002db, 0xec0089b,
313 0x600031c, 0xe000ca2, 0x5000052,
315 0x600031c, 0xe000ca2, 0x5000052, 0xd000e6a,
317 0x600031c, 0xe000ca2, 0x5000052, 0xd000e6a, 0x6000396,
319 0x600031c, 0xe000ca2, 0x5000052, 0xd000e6a, 0x6000396, 0xe000dae,
321 0x600031c, 0xe000ca2, 0x5000052, 0xd000e6a, 0x6000396, 0xe000dae, 0x400014e, 0xc000f76,
323 0x600031c, 0xe000ca2, 0x5000052, 0xd000e6a, 0x6000396, 0xe000dae, 0x400014e, 0xc000f76, 0x60002d3,
325 0x600031c, 0xe000ca2, 0x5000195,
327 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb,
329 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x44000161,
331 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db,
333 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b,
335 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b,
337 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad,
339 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052,
341 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28,
343 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28, 0x400015a,
345 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28, 0x400014c,
347 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28, 0x4000094,
349 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28, 0x40000a6,
351 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000c28, 0x40000a6, 0xe000d2c,
353 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000dae,
355 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000dae, 0x4000094, 0xc000f76, 0x6000355,
357 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000dae, 0x4000094, 0xc000f76, 0x6000355, 0x900cf3f,
359 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xd000e6a,
361 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xd000e6a, 0x40000a6,
363 0x600031c, 0xe000ca2, 0x5000195, 0xe000ceb, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xd000e6a, 0x40000a6, 0xe000d2c, 0x20000cb,
365 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c,
367 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002d3,
369 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b,
371 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xe000c28,
373 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xe000c28, 0x4000153,
375 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000e6a,
377 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000e6a, 0x5000052,
379 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000e6a, 0x5000052, 0xa000ef2,
381 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad,
383 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052,
385 0x600031c, 0xe000ca2, 0x5000195, 0xe000d2c, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000ceb,
387 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a,
389 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x4000161,
391 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x4000161, 0xe000dae,
393 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b,
395 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xe000d24,
397 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xe000dae,
399 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052,
401 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000ceb,
403 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000ceb, 0x40000a6,
405 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000d24,
407 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000d24, 0x150006e1, 0xe000ceb,
409 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000d24, 0x150006e1, 0xe000ceb, 0x40000a6, 0xe000c28,
411 0x600031c, 0xe000ca2, 0x5000195, 0xd000e6a, 0x60002db, 0xec0089b, 0x5c0055b, 0xd000fad, 0x5000052, 0xe000d24, 0x150006e1, 0xe000ceb, 0x40000a6, 0xe000c28, 0x5000850, 0xe000c61,
413 0x600031c, 0xe000caa,
415 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3,
417 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x6000724,
419 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x6000724, 0xc000ea5,
421 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x6c00723, 0xec00aa3,
423 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x6c00723, 0xec00aa3, 0x600029a, 0xd000fad, 0x5000052,
425 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x5000052,
427 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x5000052, 0xec008dc, 0x5c0049c,
429 0x600031c, 0xe000caa, 0x60002db, 0xe000ce3, 0x500004b, 0xec008dc, 0x5c002dc,
431 0x600031c, 0xe000ce3, 0x6c00723, 0xd000fad,
433 0x600031c, 0xe000ce3, 0x6c00723, 0xac00ee3,
435 0x600031c, 0xe000ce3, 0x6c00723, 0xac00ee3, 0x5000052,
437 0x600031c, 0xe000ce3, 0x6c00723, 0xac00ee3, 0x5000052, 0xa0008e0,
439 0x600031c, 0xe000ceb,
441 0x600031c, 0xe000ceb, 0x60002db,
443 0x600031c, 0xe000ceb, 0x60002db, 0xd000fad,
445 0x600031c, 0xe000ceb, 0x60002db, 0xd000fad, 0x5000052,
447 0x600031c, 0xe000ceb, 0x60002db, 0xd000fad, 0x5000052, 0xe000dae,
449 0x600031c, 0xe000ceb, 0x60002db, 0xd000fad, 0x5000052, 0xe000dae, 0x600035d, 0xc000f76, 0x5000195,
451 0x600031c, 0xe000ceb, 0x60002db, 0xd000fad, 0x5000052, 0xe000dae, 0x5000195, 0xc000f76,
453 0x600031c, 0xe000d24,
455 0x600031c, 0xe000d24, 0x600035d,
457 0x600031c, 0xe000d24, 0x5000052,
459 0x600031c, 0xe000d24, 0x5000195,
461 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a,
463 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161,
465 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28,
467 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858,
469 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad,
471 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107,
473 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xe000c61, 0x4000611,
475 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74,
477 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74, 0x3000144, 0xe000c61, 0x4000611, 0xe000ceb,
479 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74, 0x3000144, 0xe000c61, 0x4000611, 0xe000ceb, 0x6000292, 0x900cf3f,
481 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74, 0x3000144, 0xe000c61, 0x4000611, 0xe000ceb, 0x6000292, 0x900cf3f, 0x60003d7,
483 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74, 0x3000144, 0xe000c61, 0x4000611, 0xe000ceb, 0x6000292, 0x900cf3f, 0x60003d7, 0xd000aa0, 0x400044a, 0xe000ca2, 0x60002db,
485 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xe000c28, 0x4000858, 0xd000fad, 0x100c107, 0xc000f74, 0x3000144, 0xe000c61, 0x4000611, 0x900cf3f,
487 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x4000161, 0xd000fad,
489 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x400015a,
491 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x400015a, 0xd000fad,
493 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x60002db, 0xec0091b,
495 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x60002db, 0xec0091b, 0x5c0055b,
497 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x5000052,
499 0x600031c, 0xe000d24, 0x5000195, 0xd000e6a, 0x5000052, 0xd000fad,
501 0x600031c, 0xe000d24, 0x5000195, 0xd000fad,
503 0x600031c, 0xe000d24, 0x5000195, 0xd000fad, 0x5c00564, 0xe000ceb,
505 0x600031c, 0xe000d2c,
507 0x600031c, 0xe000d2c, 0x60002d3,
509 0x600031c, 0xe000d2c, 0x60002db,
511 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3,
513 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x6000724, 0xe000ca2,
515 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x6000724, 0xe000ca2, 0x6000292,
517 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052,
519 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xc000f59,
521 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xc000f59, 0x6000724,
523 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xc000f59, 0x6000724, 0xe000ca2,
525 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xc000f59, 0x6000724, 0xe000ca2, 0x6000210, 0x4ca00652, 0x6800252,
527 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xd000fad,
529 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x5000052, 0xd000fad, 0x40000a6,
531 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x500004b,
533 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x500004b, 0xe000ca2,
535 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x500004b, 0xd000fad,
537 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x500004b, 0xd000fad, 0x6000724, 0x1d000b73,
539 0x600031c, 0xe000d2c, 0x60002db, 0xe000ce3, 0x500004b, 0xd000fad, 0x6000724, 0x1d000b73, 0x4000153, 0xe000ca2, 0x6000292, 0xd000e6a, 0x500018c,
541 0x600031c, 0xe000dae,
543 0x600031c, 0xe000dae, 0x60002db,
545 0x600031c, 0xe000dae, 0x60002db, 0xc000f76,
547 0x600031c, 0xe000dae, 0x60002db, 0xc000f76, 0x5000052,
549 0x600031c, 0xe000dae, 0x60002db, 0xc000f76, 0x5000052, 0xe000ceb,
551 0x600031c, 0xd000fad,
553 0x600031c, 0xd000fad, 0x6000724, 0xd000b63,
555 0x600031c, 0xd000fad, 0x6000724, 0xd000b63, 0x60002db, 0xe000ceb,
557 0x600031c, 0xd000fad, 0x6000724, 0xd000b63, 0x60002db, 0xe000ceb, 0x5000195,
565 0x5000195, 0xe000ca2,
567 0x5000195, 0xe000ca2, 0x600029a,
569 0x5000195, 0xe000ce3,
571 0x5000195, 0xe000ce3, 0x600029a,
573 0x5000195, 0xe000ce3, 0x60002db,
575 0x5000195, 0xe000ce3, 0x6000396,
577 0x5000195, 0xe000dae,
579 0x5000195, 0xd000fad,
581 0x5000195, 0xd000fad, 0x600029a,
583 0x5000195, 0xd000fad, 0x600029a, 0xe000ca2,
585 0x5000195, 0xd000fad, 0x600029a, 0xe000d2c,
587 0x5000195, 0xd000fad, 0x600029a, 0xe000dae,
589 0x5000195, 0xd000fad, 0x600029a, 0xe000dae, 0x5000052,
591 0x5000195, 0xd000fad, 0x6000396,
593 0x5000195, 0xd000fad, 0x6000396, 0xe000dae
597 const FullMove* StoredLine::Moves_ [STORED_LINES +1] = {
600 fm + 0, fm + 0, fm + 1, fm + 2, fm + 4, fm + 7, fm + 9, fm + 12,
601 fm + 16, fm + 18, fm + 21, fm + 23, fm + 25, fm + 28, fm + 32, fm + 36,
602 fm + 37, fm + 39, fm + 42, fm + 46, fm + 51, fm + 57, fm + 64, fm + 69,
603 fm + 75, fm + 82, fm + 90, fm + 94, fm + 99, fm + 105, fm + 109, fm + 114,
604 fm + 120, fm + 126, fm + 131, fm + 134, fm + 138, fm + 143, fm + 149, fm + 155,
605 fm + 157, fm + 160, fm + 162, fm + 165, fm + 169, fm + 171, fm + 176, fm + 178,
606 fm + 182, fm + 184, fm + 187, fm + 191, fm + 194, fm + 198, fm + 203, fm + 209,
607 fm + 217, fm + 222, fm + 228, fm + 233, fm + 239, fm + 246, fm + 254, fm + 261,
608 fm + 269, fm + 280, fm + 286, fm + 291, fm + 297, fm + 304, fm + 311, fm + 319,
609 fm + 325, fm + 331, fm + 338, fm + 342, fm + 348, fm + 355, fm + 363, fm + 373,
610 fm + 384, fm + 393, fm + 403, fm + 414, fm + 424, fm + 435, fm + 447, fm + 460,
611 fm + 476, fm + 482, fm + 489, fm + 497, fm + 509, fm + 512, fm + 516, fm + 520,
612 fm + 524, fm + 529, fm + 534, fm + 538, fm + 543, fm + 548, fm + 554, fm + 561,
613 fm + 569, fm + 574, fm + 581, fm + 582, fm + 584, fm + 587, fm + 594, fm + 602,
614 fm + 608, fm + 616, fm + 620, fm + 623, fm + 627, fm + 632, fm + 638, fm + 646,
615 fm + 655, fm + 658, fm + 662, fm + 667, fm + 672, fm + 678, fm + 685, fm + 693,
616 fm + 702, fm + 712, fm + 723, fm + 734, fm + 745, fm + 756, fm + 768, fm + 778,
617 fm + 791, fm + 805, fm + 815, fm + 826, fm + 839, fm + 843, fm + 848, fm + 855,
618 fm + 863, fm + 872, fm + 880, fm + 889, fm + 899, fm + 907, fm + 916, fm + 926,
619 fm + 930, fm + 935, fm + 941, fm + 948, fm + 956, fm + 964, fm + 973, fm + 983,
620 fm + 994, fm +1004, fm +1016, fm +1030, fm +1046, fm +1048, fm +1052, fm +1057,
621 fm +1063, fm +1069, fm +1078, fm +1083, fm +1090, fm +1097, fm +1101, fm +1105,
622 fm +1110, fm +1116, fm +1118, fm +1121, fm +1125, fm +1130, fm +1136, fm +1145,
623 fm +1153, fm +1155, fm +1158, fm +1161, fm +1164, fm +1168, fm +1173, fm +1179,
624 fm +1186, fm +1194, fm +1203, fm +1214, fm +1224, fm +1238, fm +1254, fm +1271,
625 fm +1292, fm +1306, fm +1312, fm +1317, fm +1323, fm +1329, fm +1336, fm +1341,
626 fm +1347, fm +1351, fm +1357, fm +1359, fm +1362, fm +1365, fm +1369, fm +1375,
627 fm +1382, fm +1387, fm +1393, fm +1400, fm +1408, fm +1419, fm +1425, fm +1432,
628 fm +1437, fm +1443, fm +1449, fm +1457, fm +1470, fm +1472, fm +1475, fm +1479,
629 fm +1484, fm +1490, fm +1492, fm +1496, fm +1502, fm +1509, fm +1510, fm +1511,
630 fm +1512, fm +1514, fm +1517, fm +1519, fm +1522, fm +1525, fm +1528, fm +1530,
631 fm +1532, fm +1535, fm +1539, fm +1543, fm +1547, fm +1552, fm +1555, fm +1559
638 matches_[STORED_LINES] = -1;
639 for (
uint line = 1; line < STORED_LINES; line++) {
641 const FullMove* end = Moves_[line +1];
642 for (
int ply=0; ply < 99; ply++) {
643 if (((ply %2) == toMove) && b == search) {
644 matches_[line] = ply;
647 const FullMove* m = Moves_[line] + ply;
649 matches_[line] = b.neverMatch(search) ? -2 : -1;
pieceT piece_Type(pieceT p)
StoredLine(const pieceT *board, colorT toMove)
bool operator==(const simpleMoveT &a, const cmpMove &b)
colorT piece_Color(pieceT p)
pieceT piece_Make(colorT c, pieceT p)