223 size_t read_count = 0;
230 if (! reader.hasNext())
232 int val = reader.read();
238 piece_values[i] = val;
248 if (! reader.hasNext())
250 int val = reader.read();
257 read_count += setUpOne<King25EffectAttack>(reader);
258 read_count += setUpOne<King25EffectYAttack>(reader);
259 read_count += setUpOne<PiecePairKing>(reader);
260 read_count += setUpOne<BishopExchangeSilverKing>(reader);
261 read_count += setUpOne<EnterKingDefense>(reader);
264 read_count += setUpOne<PieceStand>(reader,0);
265 read_count += setUpOne<King25EffectEachBothOpening>(reader);
266 read_count += setUpOne<PawnDrop>(reader,0);
267 read_count += setUpOne<NoPawnOnStand>(reader,0);
268 read_count += setUpOne<GoldRetreat>(reader,0);
269 read_count += setUpOne<SilverRetreat>(reader,0);
270 read_count += setUpOne<KnightAdvance>(reader,0);
271 read_count += setUpOne<AllMajor>(reader,0);
272 read_count += setUpOne<KingXBlocked>(reader,0);
273 read_count += setUpOne<KingXBlockedY>(reader,0);
274 read_count += setUpOne<AllGold>(reader,0);
275 read_count += setUpOne<PtypeX>(reader,0);
276 read_count += setUpOne<PtypeY>(reader,0);
277 read_count += setUpOne<AnagumaEmpty>(reader,0);
278 read_count += setUpOne<NonPawnPieceStand>(reader,0);
279 read_count += setUpOne<King25EffectDefense>(reader,0);
280 read_count += setUpOne<King25EffectYDefense>(reader,0);
281 read_count += setUpOne<RookMobility>(reader,0);
282 read_count += setUpOne<BishopMobility>(reader,0);
283 read_count += setUpOne<LanceMobility>(reader,0);
284 read_count += setUpOne<RookEffect>(reader,0);
285 read_count += setUpOne<BishopEffect>(reader,0);
286 read_count += setUpOne<PawnAdvance>(reader,0);
287 read_count += setUpOne<PawnDropY>(reader,0);
288 read_count += setUpOne<KnightCheck>(reader,0);
291 read_count += setUpOne<PieceStand>(reader,1);
292 read_count += setUpOne<King25EffectEachBothMidgame>(reader);
293 read_count += setUpOne<PawnDrop>(reader,1);
294 read_count += setUpOne<NoPawnOnStand>(reader,1);
295 read_count += setUpOne<GoldRetreat>(reader,1);
296 read_count += setUpOne<SilverRetreat>(reader,1);
297 read_count += setUpOne<KnightAdvance>(reader,1);
298 read_count += setUpOne<AllMajor>(reader,1);
299 read_count += setUpOne<KingXBlocked>(reader,1);
300 read_count += setUpOne<KingXBlockedY>(reader,1);
301 read_count += setUpOne<AllGold>(reader,1);
302 read_count += setUpOne<PtypeX>(reader,1);
303 read_count += setUpOne<PtypeY>(reader,1);
304 read_count += setUpOne<AnagumaEmpty>(reader,1);
305 read_count += setUpOne<NonPawnPieceStand>(reader,1);
306 read_count += setUpOne<King25EffectDefense>(reader,1);
307 read_count += setUpOne<King25EffectYDefense>(reader,1);
308 read_count += setUpOne<RookMobility>(reader,1);
309 read_count += setUpOne<BishopMobility>(reader,1);
310 read_count += setUpOne<LanceMobility>(reader,1);
311 read_count += setUpOne<RookEffect>(reader,1);
312 read_count += setUpOne<BishopEffect>(reader,1);
313 read_count += setUpOne<PawnAdvance>(reader,1);
314 read_count += setUpOne<PawnDropY>(reader,1);
315 read_count += setUpOne<KnightCheck>(reader,1);
319 read_count += setUpOne<PieceStand>(reader,2);
320 read_count += setUpOne<King25EffectEachBothMidgame2>(reader);
321 read_count += setUpOne<PawnDrop>(reader,2);
322 read_count += setUpOne<NoPawnOnStand>(reader,2);
323 read_count += setUpOne<GoldRetreat>(reader,2);
324 read_count += setUpOne<SilverRetreat>(reader,2);
325 read_count += setUpOne<KnightAdvance>(reader,2);
326 read_count += setUpOne<AllMajor>(reader,2);
327 read_count += setUpOne<KingXBlocked>(reader,2);
328 read_count += setUpOne<KingXBlockedY>(reader,2);
329 read_count += setUpOne<AllGold>(reader,2);
330 read_count += setUpOne<PtypeX>(reader,2);
331 read_count += setUpOne<PtypeY>(reader,2);
332 read_count += setUpOne<AnagumaEmpty>(reader,2);
333 read_count += setUpOne<NonPawnPieceStand>(reader,2);
334 read_count += setUpOne<King25EffectDefense>(reader,2);
335 read_count += setUpOne<King25EffectYDefense>(reader,2);
336 read_count += setUpOne<RookMobility>(reader,2);
337 read_count += setUpOne<BishopMobility>(reader,2);
338 read_count += setUpOne<LanceMobility>(reader,2);
339 read_count += setUpOne<RookEffect>(reader,2);
340 read_count += setUpOne<BishopEffect>(reader,2);
341 read_count += setUpOne<PawnAdvance>(reader,2);
342 read_count += setUpOne<PawnDropY>(reader,2);
343 read_count += setUpOne<KnightCheck>(reader,2);
347 read_count += setUpOne<PieceStand>(reader,
EndgameIndex);
348 read_count += setUpOne<King25EffectEachBothEnding>(reader);
350 read_count += setUpOne<NoPawnOnStand>(reader,
EndgameIndex);
351 read_count += setUpOne<GoldRetreat>(reader,
EndgameIndex);
352 read_count += setUpOne<SilverRetreat>(reader,
EndgameIndex);
353 read_count += setUpOne<KnightAdvance>(reader,
EndgameIndex);
355 read_count += setUpOne<KingXBlocked>(reader,
EndgameIndex);
356 read_count += setUpOne<KingXBlockedY>(reader,
EndgameIndex);
360 read_count += setUpOne<AnagumaEmpty>(reader,
EndgameIndex);
361 read_count += setUpOne<NonPawnPieceStand>(reader,
EndgameIndex);
362 read_count += setUpOne<King25EffectDefense>(reader,
EndgameIndex);
363 read_count += setUpOne<King25EffectYDefense>(reader,
EndgameIndex);
364 read_count += setUpOne<RookMobility>(reader,
EndgameIndex);
365 read_count += setUpOne<BishopMobility>(reader,
EndgameIndex);
366 read_count += setUpOne<LanceMobility>(reader,
EndgameIndex);
367 read_count += setUpOne<RookEffect>(reader,
EndgameIndex);
368 read_count += setUpOne<BishopEffect>(reader,
EndgameIndex);
369 read_count += setUpOne<PawnAdvance>(reader,
EndgameIndex);
371 read_count += setUpOne<KnightCheck>(reader,
EndgameIndex);
374 read_count += setUpOne<KingPieceRelative>(reader,0);
375 read_count += setUpOne<KingPieceRelative>(reader,1);
377 read_count += setUpOne<KingPieceRelative>(reader,2);
379 read_count += setUpOne<KingPieceRelative>(reader,
EndgameIndex);
380 read_count += setUpOne<NonPawnPieceStandTurn>(reader);
381 read_count += setUpOne<King25EffectEachXY>(reader);
382 read_count += setUpOne<RookPawnY>(reader);
383 read_count += setUpOne<RookEffectPiece>(reader);
384 read_count += setUpOne<BishopEffectPiece>(reader);
385 read_count += setUpOne<PieceStandY>(reader);
386 read_count += setUpOne<RookEffectPieceKingRelative>(reader);
387 read_count += setUpOne<BishopEffectPieceKingRelative>(reader);
388 read_count += setUpOne<RookPawnYX>(reader);
389 read_count += setUpOne<PawnPtypeOPtypeO>(reader);
390 read_count += setUpOne<PromotedMinorPieces>(reader);
391 read_count += setUpOne<KingPieceRelativeNoSupport>(reader);
392 read_count += setUpOne<NonPawnAttacked>(reader);
393 read_count += setUpOne<PtypeYY>(reader);
394 read_count += setUpOne<PawnPtypeOPtypeOY>(reader);
395 read_count += setUpOne<PawnDropX>(reader);
396 read_count += setUpOne<King3Pieces>(reader);
397 read_count += setUpOne<King3PiecesXY>(reader);
398 read_count += setUpOne<King25EffectEachKXY>(reader);
399 read_count += setUpOne<BishopHead>(reader);
400 read_count += setUpOne<BishopHeadKingRelative>(reader);
401 read_count += setUpOne<KnightCheckY>(reader);
402 read_count += setUpOne<KnightHead>(reader);
403 read_count += setUpOne<RookPromoteDefense>(reader);
404 read_count += setUpOne<PawnDropPawnStand>(reader);
405 read_count += setUpOne<PawnDropPawnStandX>(reader);
406 read_count += setUpOne<PawnDropPawnStandY>(reader);
407 read_count += setUpOne<KnightHeadOppPiecePawnOnStand>(reader);
408 read_count += setUpOne<KingXBothBlocked>(reader);
409 read_count += setUpOne<KingXBothBlockedY>(reader);
410 read_count += setUpOne<KingRookBishop>(reader);
411 read_count += setUpOne<PromotedMinorPiecesY>(reader);
412 read_count += setUpOne<King25EffectSupported>(reader);
413 read_count += setUpOne<King25EffectSupportedY>(reader);
414 read_count += setUpOne<NonPawnAttackedKingRelative>(reader);
415 read_count += setUpOne<NonPawnAttackedPtype>(reader);
416 read_count += setUpOne<PtypeCount>(reader);
417 read_count += setUpOne<KingXBlocked3>(reader);
418 read_count += setUpOne<KingXBlocked3Y>(reader);
419 read_count += setUpOne<PtypeCountXY>(reader);
420 read_count += setUpOne<PtypeCountXYAttack>(reader);
421 read_count += setUpOne<LanceEffectPieceKingRelative>(reader);
422 read_count += setUpOne<KingMobility>(reader);
423 read_count += setUpOne<KingMobilitySum>(reader);
424 read_count += setUpOne<PtypeYPawnY>(reader);
425 read_count += setUpOne<GoldAndSilverNearKing>(reader);
426 read_count += setUpOne<PtypeCombination>(reader);
427 read_count += setUpOne<PieceStandCombinationBoth>(reader);
428 read_count += setUpOne<King25BothSide>(reader);
429 read_count += setUpOne<King25BothSideX>(reader);
430 read_count += setUpOne<King25BothSideY>(reader);
431 read_count += setUpOne<GoldAndSilverNearKingCombination>(reader);
432 read_count += setUpOne<KingMobilityWithRook>(reader);
433 read_count += setUpOne<KingMobilityWithBishop>(reader);
434 read_count += setUpOne<NumPiecesBetweenBishopAndKingSelf>(reader);
435 read_count += setUpOne<NumPiecesBetweenBishopAndKingOpp>(reader);
436 read_count += setUpOne<NumPiecesBetweenBishopAndKingAll>(reader);
437 read_count += setUpOne<King25Effect3>(reader);
438 read_count += setUpOne<SilverHeadPawnKingRelative>(reader);
439 read_count += setUpOne<GoldKnightKingRelative>(reader);
440 read_count += setUpOne<RookMobilitySum>(reader);
441 read_count += setUpOne<RookMobilityX>(reader);
442 read_count += setUpOne<RookMobilityY>(reader);
443 read_count += setUpOne<RookMobilitySumKingX>(reader);
444 read_count += setUpOne<RookMobilityXKingX>(reader);
445 read_count += setUpOne<PinPtype>(reader);
446 read_count += setUpOne<PinPtypeDistance>(reader);
447 read_count += setUpOne<BishopMobilityEach>(reader);
448 read_count += setUpOne<BishopBishopPiece>(reader);
449 read_count += setUpOne<NonPawnPieceStandCombination>(reader);
450 read_count += setUpOne<CanCheckNonPawnPieceStandCombination>(reader);
451 read_count += setUpOne<King25Effect3Y>(reader);
452 read_count += setUpOne<RookRook>(reader);
453 read_count += setUpOne<RookRookPiece>(reader);
454 read_count += setUpOne<PinPtypePawnAttack>(reader);
455 read_count += setUpOne<King25Mobility>(reader);
456 read_count += setUpOne<King25MobilityX>(reader);
457 read_count += setUpOne<King25MobilityY>(reader);
458 read_count += setUpOne<King25EffectCountCombination>(reader);
459 read_count += setUpOne<GoldSideMove>(reader);
460 read_count += setUpOne<King25EffectCountCombinationY>(reader);
461 read_count += setUpOne<RookPromoteDefenseRookH>(reader);
462 read_count += setUpOne<BishopHeadX>(reader);
463 read_count += setUpOne<PawnDropNonDrop>(reader);
464 read_count += setUpOne<PawnStateKingRelative>(reader);
465 read_count += setUpOne<SilverFork>(reader);
466 read_count += setUpOne<BishopRookFork>(reader);
467 read_count += setUpOne<BishopStandFile5>(reader);
468 read_count += setUpOne<KnightFork>(reader);
469 read_count += setUpOne<NonPawnAttackedPtypePair>(reader);
470 read_count += setUpOne<MajorCheckWithCapture>(reader);
471 read_count += setUpOne<SilverAdvance26>(reader);
472 read_count += setUpOne<RookSilverKnight>(reader);
473 read_count += setUpOne<BishopSilverKnight>(reader);
474 read_count += setUpOne<AttackMajorsInBase>(reader);
475 read_count += setUpOne<CheckShadowPtype>(reader);
476 read_count += setUpOne<Promotion37>(reader);
481 std::cerr <<
"Failed to load OpenMidEndingEval data "
482 <<
' ' << read_count << std::endl;
1321 setRandomOne<King25EffectAttack>();
1322 setRandomOne<King25EffectYAttack>();
1325 setRandomOne<PieceStand>(0);
1326 setRandomOne<Pin>(0);
1327 setRandomOne<King25EffectEachBothOpening>();
1328 setRandomOne<PawnDrop>(0);
1329 setRandomOne<NoPawnOnStand>(0);
1330 setRandomOne<GoldRetreat>(0);
1331 setRandomOne<SilverRetreat>(0);
1332 setRandomOne<KnightAdvance>(0);
1333 setRandomOne<AllMajor>(0);
1334 setRandomOne<KingXBlocked>(0);
1335 setRandomOne<KingXBlockedY>(0);
1336 setRandomOne<AllGold>(0);
1337 setRandomOne<PtypeX>(0);
1338 setRandomOne<PtypeY>(0);
1339 setRandomOne<AnagumaEmpty>(0);
1340 setRandomOne<NonPawnPieceStand>(0);
1341 setRandomOne<King25EffectDefense>(0);
1342 setRandomOne<King25EffectYDefense>(0);
1343 setRandomOne<RookMobility>(0);
1344 setRandomOne<BishopMobility>(0);
1345 setRandomOne<LanceMobility>(0);
1346 setRandomOne<RookEffect>(0);
1347 setRandomOne<BishopEffect>(0);
1348 setRandomOne<PawnAdvance>(0);
1349 setRandomOne<PawnDropY>(0);
1350 setRandomOne<KnightCheck>(0);
1353 setRandomOne<PieceStand>(1);
1354 setRandomOne<Pin>(1);
1355 setRandomOne<King25EffectEachBothMidgame>();
1356 setRandomOne<PawnDrop>(1);
1357 setRandomOne<NoPawnOnStand>(1);
1358 setRandomOne<GoldRetreat>(1);
1359 setRandomOne<SilverRetreat>(1);
1360 setRandomOne<KnightAdvance>(1);
1361 setRandomOne<AllMajor>(1);
1362 setRandomOne<KingXBlocked>(1);
1363 setRandomOne<KingXBlockedY>(1);
1364 setRandomOne<AllGold>(1);
1365 setRandomOne<PtypeX>(1);
1366 setRandomOne<PtypeY>(1);
1367 setRandomOne<AnagumaEmpty>(1);
1368 setRandomOne<NonPawnPieceStand>(1);
1369 setRandomOne<King25EffectDefense>(1);
1370 setRandomOne<King25EffectYDefense>(1);
1371 setRandomOne<RookMobility>(1);
1372 setRandomOne<BishopMobility>(1);
1373 setRandomOne<LanceMobility>(1);
1374 setRandomOne<RookEffect>(1);
1375 setRandomOne<BishopEffect>(1);
1376 setRandomOne<PawnAdvance>(1);
1377 setRandomOne<PawnDropY>(1);
1378 setRandomOne<KnightCheck>(1);
1382 setRandomOne<PieceStand>(2);
1383 setRandomOne<Pin>(2);
1384 setRandomOne<King25EffectEachBothEnding>();
1385 setRandomOne<PawnDrop>(2);
1386 setRandomOne<NoPawnOnStand>(2);
1387 setRandomOne<GoldRetreat>(2);
1388 setRandomOne<SilverRetreat>(2);
1389 setRandomOne<KnightAdvance>(2);
1390 setRandomOne<AllMajor>(2);
1391 setRandomOne<KingXBlocked>(2);
1392 setRandomOne<KingXBlockedY>(2);
1393 setRandomOne<AllGold>(2);
1394 setRandomOne<PtypeX>(2);
1395 setRandomOne<PtypeY>(2);
1396 setRandomOne<AnagumaEmpty>(2);
1397 setRandomOne<NonPawnPieceStand>(2);
1398 setRandomOne<King25EffectDefense>(2);
1399 setRandomOne<King25EffectYDefense>(2);
1400 setRandomOne<RookMobility>(2);
1401 setRandomOne<BishopMobility>(2);
1402 setRandomOne<LanceMobility>(2);
1403 setRandomOne<RookEffect>(2);
1404 setRandomOne<BishopEffect>(2);
1405 setRandomOne<PawnAdvance>(2);
1406 setRandomOne<PawnDropY>(2);
1407 setRandomOne<KnightCheck>(2);
1412 setRandomOne<King25EffectEachBothMidgame>();
1438 setRandomOne<KingPieceRelative>(0);
1439 setRandomOne<KingPieceRelative>(1);
1441 setRandomOne<KingPieceRelative>(2);
1444 setRandomOne<NonPawnPieceStandCombination>();
1445 setRandomOne<NonPawnPieceStandTurn>();
1446 setRandomOne<King25EffectEachXY>();
1447 setRandomOne<RookPawnY>();
1448 setRandomOne<RookEffectPiece>();
1449 setRandomOne<BishopEffectPiece>();
1450 setRandomOne<PieceStandY>();
1451 setRandomOne<RookEffectPieceKingRelative>();
1452 setRandomOne<BishopEffectPieceKingRelative>();
1453 setRandomOne<RookPawnYX>();
1454 setRandomOne<PawnPtypeOPtypeO>();
1455 setRandomOne<CanCheckNonPawnPieceStandCombination>();
1456 setRandomOne<PromotedMinorPieces>();
1457 setRandomOne<KingPieceRelativeNoSupport>();
1458 setRandomOne<NonPawnAttacked>();
1459 setRandomOne<PtypeYY>();
1460 setRandomOne<PawnPtypeOPtypeOY>();
1461 setRandomOne<PawnDropX>();
1462 setRandomOne<King3Pieces>();
1463 setRandomOne<King3PiecesXY>();
1464 setRandomOne<King25EffectEachKXY>();
1465 setRandomOne<BishopHead>();
1466 setRandomOne<BishopHeadKingRelative>();
1467 setRandomOne<KnightCheckY>();
1468 setRandomOne<KnightHead>();
1469 setRandomOne<RookPromoteDefense>();
1470 setRandomOne<PawnDropPawnStand>();
1471 setRandomOne<PawnDropPawnStandX>();
1472 setRandomOne<PawnDropPawnStandY>();
1473 setRandomOne<King25Effect2>();
1474 setRandomOne<King25EffectY2>();
1475 setRandomOne<KnightHeadOppPiecePawnOnStand>();
1476 setRandomOne<KingXBothBlocked>();
1477 setRandomOne<KingXBothBlockedY>();
1478 setRandomOne<KingRookBishop>();
1479 setRandomOne<PromotedMinorPiecesY>();
1480 setRandomOne<King25EffectSupported>();
1481 setRandomOne<King25EffectSupportedY>();
1482 setRandomOne<NonPawnAttackedKingRelative>();
1483 setRandomOne<NonPawnAttackedPtype>();
1484 setRandomOne<PtypeCount>();
1485 setRandomOne<KingXBlocked3>();
1486 setRandomOne<KingXBlocked3Y>();
1487 setRandomOne<PtypeCountXY>();
1488 setRandomOne<PtypeCountXYAttack>();
1489 setRandomOne<LanceEffectPieceKingRelative>();
1490 setRandomOne<KingMobility>();
1491 setRandomOne<KingMobilitySum>();
1492 setRandomOne<MajorCheckWithCapture>();
1493 setRandomOne<RookSilverKnight>();
1494 setRandomOne<BishopSilverKnight>();