diff options
| author | Scott Gasch <[email protected]> | 2026-08-29 00:30:53 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2026-08-29 00:30:53 -0700 |
| commit | 917bf1260ae217bdcbdbc11c2c37cdb5d3a8eae9 (patch) | |
| tree | 8013781f51e53eaf1fe3d4f45367e920d4c39786 /tests/ecm_hard_quick.ep_ | |
| parent | 366eebaf6b72fc6b56ea06a71f0276069a501dc7 (diff) | |
Switch to Crafty-style killer ordering; fix mvNullmoveRefutations type-mixing bug and add a quiet-refutation killer backfill.
Killer tiers now try both of this ply's own killers before either
ply-2-back one, matching Crafty's ordering. Two earlier attempts at
this same swap were reverted for regressing; this pass lands on top of
NumLeftoverMovesToSelect (more SelectBestWithHistory budget to reach
these lower-tier slots) and a real bug fix below, and beats interleaved
order head-to-head on solves, node count, and first-move beta cutoff
across the three curated suites.
The bug: mvNullmoveRefutations's empty-killer-slot backfill could only
ever contain a capturing move (TryNullmovePruning only wrote it inside
the capture-refutation branch), but IS_SAME_MOVE's mask includes the
pCaptured bits, so that backfilled value could never match a real
quiet candidate -- the backfill was silently dead code. Fixed by
recording genuinely quiet null-move refutations into a new, separate
mvNullmoveQuietRefutations array (kept separate so it can't clobber the
capture history mvNullmoveRefutations still needs for the
Botvinnik-Markoff same-piece-two-squares extension check) and
backfilling the regular killer table from that instead. The
check-evasion killer table intentionally does *not* get this backfill:
a null-move refutation can never legitimately be an escaping-check
move (null moves can't deliver check), so backfilling there risks
IS_SAME_MOVE cross-context false positives instead of the old
guaranteed-inert no-op.
Measured at sd10 across ecm_ringers/ecm_confident_quick/ecm_hard_quick
against head_reference (commit d11e973): 115/191 solves (vs. 116
baseline), 924.36M total nodes (vs. 933.23M), first-move beta cutoff
within 0.1-0.9 points of baseline on all three suites -- and clearly
better than the same fix under interleaved order (113/191 solves,
963.10M nodes), which loses to head_reference on every metric.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EortUUkDVpsfrbqshBJYJg
Diffstat (limited to 'tests/ecm_hard_quick.ep_')
| -rw-r--r-- | tests/ecm_hard_quick.ep_ | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/tests/ecm_hard_quick.ep_ b/tests/ecm_hard_quick.ep_ new file mode 100644 index 0000000..521e1ae --- /dev/null +++ b/tests/ecm_hard_quick.ep_ @@ -0,0 +1,360 @@ +setboard r3rbk1/1pq2ppp/2ppbnn1/p3p3/P1PPN3/BP1BPN1P/2Q2PP1/R2R2K1 w - - +solution Nxd6 +id "ECM.018" +go +setboard b7/2q2kp1/p3pbr1/1pPpP2Q/1P1N3P/6P1/P7/5RK1 w - - +solution Rxf6+ +id "ECM.019" +go +setboard 3r2k1/1q1P1ppp/r2R2n1/p4Q2/1ppB2R1/6P1/PP3PP1/6K1 w - - +solution Rgxg6 +id "ECM.029" +go +setboard r1b2rk1/pp2b3/2pn1n1p/3pNppq/3P4/BP1N2P1/P3PPBP/R1Q2RK1 w - - +solution Nxc6 +id "ECM.040" +go +setboard r1b2rk1/1p2bppp/p3pn2/4B3/1qBR4/2N5/P3QPPP/R5K1 w - - +solution Bd3 +id "ECM.068" +go +setboard b1n1r1k1/2q2p1p/p4Pp1/1pBP4/4B1P1/2P1Q3/P4K1P/4R3 w - - +solution Qh6 +id "ECM.071" +go +setboard 4r1k1/1b4pp/p7/1prP3q/2P1B3/5P2/P3Q2P/3RR2K w - - +solution Bg6 +id "ECM.084" +go +setboard r1bn1rk1/pp3p1p/6p1/2bR2N1/2B2B2/q1P1P3/2Q2PPP/4K2R w K - +solution Nxh7 +id "ECM.115" +go +setboard rn2qbr1/2p4k/p2p1nb1/1p1Pp2p/2P4P/2NBBPN1/PP1Q4/2KR2R1 w - - +solution Nxh5 +id "ECM.128" +go +setboard 2rq1rk1/pp2bppp/1npp1n2/3PpN1b/2P5/2N3PP/PP2PPB1/R1BQ1RK1 w - - +solution c5 +id "ECM.131" +go +setboard b3r3/q2B2k1/3Q2p1/1p5p/3pP3/5P2/1p4PP/5RK1 b - - +solution d3+ +id "ECM.142" +go +setboard 6k1/4ppbp/p5p1/1B1Q4/2P2Pn1/8/qr4PP/2B2RK1 b - - +solution Bd4+ +id "ECM.145" +go +setboard 1R3b2/3r3k/2p1bp1p/r1q1pNpQ/2PpP2P/6B1/P4PP1/1R4K1 w - - +solution Nxh6 +id "ECM.186" +go +setboard 5rk1/5pbp/b5p1/p1nNN3/1p2n3/1P4PP/P4PB1/2BR2K1 w - - +solution Nd7 +id "ECM.190" +go +setboard r2r1bk1/3qp2p/3pp1p1/p2n2N1/2N3Q1/BP4P1/P4PP1/2R3K1 w - - +solution Nb6 +id "ECM.193" +go +setboard r1k3r1/pppnb1p1/4N3/3QP2p/3P3q/4B3/PPP2P2/R3KB2 w Q - +solution Ba6 +id "ECM.198" +go +setboard r1bq1rk1/pppn2bp/3p2p1/3N1p2/8/BP1BRQ1P/P1PP1PP1/4R1K1 w - - +solution Nxc7 +id "ECM.206" +go +setboard 3rr1k1/1b5p/p6p/1p3N2/6Pb/P1Q1p3/1PP4P/R5K1 b - - +solution Bf2+ +id "ECM.237" +go +setboard 1k1r1r2/2b2R2/Bppp2p1/2q4p/Q2pP3/P2P4/2P3PP/1R4K1 w - - +solution Bb7 +id "ECM.251" +go +setboard 4n1q1/1k1b4/2p4R/2Pp4/1p1N1rpQ/3B4/PPP2P2/2K5 w - - +solution Nxc6 +id "ECM.271" +go +setboard r3r1k1/pp3pp1/2bb1q2/3p4/4n1Pp/2P1BB1P/PP2NPK1/R1Q4R b - - +solution Qxf3+ +id "ECM.274" +go +setboard rn4k1/pp2p1b1/4b3/q2p2Q1/2B2P2/8/P1P1K1P1/R6R w - - +solution Rh8+ +id "ECM.277" +go +setboard 2b1qr1k/7p/p1pR2p1/1pP1p1Q1/4P3/1B6/PP4PP/6K1 w - - +solution Re6 +id "ECM.298" +go +setboard r1b2rk1/p3bppp/2q5/8/2p1NR2/PnB1P3/1PB1Q1PP/3R2K1 w - - +solution Rd6 +id "ECM.315" +go +setboard r1bqr1k1/pp3pp1/2p4p/3PN1n1/3P1b2/2NB4/PPQ2PPP/3R1RK1 b - - +solution Rxe5 +id "ECM.336" +go +setboard 2r2rbk/6bp/5qp1/1N1p1n2/4p3/1p5P/1P3PP1/RBBQ1RK1 b - - +solution Ng3 +id "ECM.338" +go +setboard 2r3k1/p1r1ppb1/2bp1np1/q5N1/1p1BP2Q/3P4/PP2N1PP/2R2R1K w - - +solution Bxf6 +id "ECM.360" +go +setboard r4rk1/5p2/p1b1pQpq/8/1B2P3/2NR4/PPP3PP/1K6 w - - +solution Rd5 +id "ECM.367" +go +setboard 1r2r1k1/1pqb2pp/p2bp1n1/2p3BQ/3pN3/1P1P2P1/P1P3BP/4RRK1 w - - +solution Bd8 +id "ECM.370" +go +setboard 3rr1k1/1p1qb2p/pP4p1/2p2p2/4RQ2/3P4/1PPB2PP/4R1K1 w - - +solution Bc3 +id "ECM.420" +go +setboard 6k1/rnqb3p/5ppQ/2pPp3/p1N1P3/2PB3P/5PP1/1R4K1 w - - +solution f4 +id "ECM.422" +go +setboard 6k1/p4p1p/3pqp2/2p1r3/2Pnr1N1/P6P/1P1Q1PP1/3R1RK1 b - - +solution Ne2+ +id "ECM.427" +go +setboard 4qn1k/1b3rpp/pb2pB2/1pp1P2P/3p1NQ1/P2P2PB/1PP4K/5R2 w - - +solution Ng6+ +id "ECM.442" +go +setboard 2b5/2qrrpk1/5Rp1/2p4p/1pB1PR1P/1P1P2P1/5Q1K/8 w - - +solution Qb2 +id "ECM.443" +go +setboard 2k5/1p1b4/2n1p1r1/7q/4RP2/3BQN2/2P2K1P/8 w - - +solution f5 +id "ECM.447" +go +setboard 2rq2k1/pp1bpp1p/3p1np1/8/3NPPnQ/1BP5/P1P3P1/1K1R3R w - - +solution e5 +id "ECM.464" +go +setboard r1b3k1/3nqp1p/p1n1p1pP/3pP1N1/Pp3QN1/1Pr3P1/2PR1P2/4RBK1 w - - +solution Rxd5 +id "ECM.465" +go +setboard 2rr2k1/5pn1/1b2q1pp/pP1pP3/2pP1PP1/2R1B2P/2Q3B1/3R3K w - - +solution f5 +id "ECM.468" +go +setboard 4r3/pb3pk1/6p1/8/6P1/1PNrB2K/P4P1P/2R5 b - - +solution Rexe3+ +id "ECM.476" +go +setboard 2b3k1/5qp1/p2r1n1p/3p4/3B4/1RP3QP/P2Nr1P1/3R2K1 b - - +solution Ne4 +id "ECM.489" +go +setboard 1r2r1k1/p4ppb/q1pbnn1p/4p3/N1P1P3/pPB2NP1/2Q1RPBP/R5K1 b - - +solution Nxe4 +id "ECM.491" +go +setboard rq1r2k1/3nbp1p/p2p2p1/1p1Pp1P1/3B1P2/3B3Q/PPP4P/2KR2R1 w - - +solution f5 +id "ECM.497" +go +setboard r3rk2/pb2bpp1/1n5p/q1pP1B2/1p3B2/5N2/PPQ2PPP/R2R2K1 w - - +solution Bc8 +id "ECM.503" +go +setboard 4qrk1/pp1bbppp/4pn2/2r1Q1B1/7P/2N3R1/PPP2PP1/2KR1B2 w - - +solution Bxf6 +id "ECM.516" +go +setboard r5n1/pppb1B2/2k1pb2/3p2B1/5P2/2N5/PPP3P1/2KR4 w - - +solution Nxd5 +id "ECM.517" +go +setboard 8/4Ppk1/6p1/1p6/1Pb1Q3/6pq/8/6K1 w - - +solution Qe5+ +id "ECM.544" +go +setboard r1b2rk1/ppp2ppp/2n3q1/b2N2N1/2BP4/4p2P/PPP3P1/R2Q1RK1 w - - +solution Nxf7 +id "ECM.553" +go +setboard 2rr2k1/1p3p2/p2n2p1/P2PnNq1/3QP1p1/1RN5/6PP/5RK1 b - - +solution Nf3+ +id "ECM.560" +go +setboard rnb2rk1/pp4pp/2pb1n2/3N1p1q/2P5/3N2P1/P1Q1PPBP/R1B2RK1 w - - +solution Bf4 +id "ECM.597" +go +setboard 8/p5k1/2p2p2/4p1p1/1p2P3/1P4PP/1PP5/5K2 b - - +solution g4 +id "ECM.601" +go +setboard 8/8/4b1p1/2Bp3p/5P1P/1pK1Pk2/8/8 b - - +solution g5 +id "ECM.605" +go +setboard 6k1/2q3p1/1n2Pp1p/pBp2P2/Pp2P3/1P1Q1KP1/8/8 w - - +solution e5 +id "ECM.613" +go +setboard 6k1/1q2rpp1/p6p/P7/1PB1n3/5Q2/6PP/5R1K w - - +solution b5 +id "ECM.615" +go +setboard 3rr1k1/pppRn1pp/4Pp2/1P5q/1QB5/4P3/P4P1P/4K1R1 w - - +solution Qxe7 +id "ECM.627" +go +setboard r3qr1k/1b4pp/p2RQ3/Bp2p3/4p3/6P1/PPP2P1P/3R2K1 b - - +solution Qh5 +id "ECM.637" +go +setboard 8/pR4pk/1b6/2p5/N1p5/8/PP1r2PP/6K1 b - - +solution Rxb2 +id "ECM.640" +go +setboard r2qrbk1/5ppp/pn1p4/np2P1P1/3p4/5N2/PPB2PP1/R1BQR1K1 w - - +solution Bxh7+ +id "ECM.654" +go +setboard 2rqr1k1/1p1bbppp/p3p3/n7/3P2Q1/2PB1N2/P4PPP/R1B1R1K1 w - - +solution Bxh7+ +id "ECM.673" +go +setboard rn1q1rk1/pb1p1ppp/4p3/2pnP3/1bp5/2N2N2/PP3PPP/RBBQK2R w KQ - +solution Bxh7+ +id "ECM.675" +go +setboard 3rr1k1/1pq1nppp/p1p2b2/4pB2/2QPP3/P1P1B3/1P4PP/3R1RK1 w - - +solution Bxh7+ +id "ECM.680" +go +setboard 2rq1rk1/pp1bnpbp/4p1p1/3pP1N1/3P2Q1/2PB4/P4PPP/R1B1R1K1 w - - +solution Nxh7 +id "ECM.684" +go +setboard r4rk1/pp1n1ppp/3qp3/3nN1P1/b2P4/P2B1Q2/3B1P1P/1R2R1K1 w - - +solution Bxh7+ +id "ECM.687" +go +setboard r2qrnk1/4bppp/b1p5/1p1p2P1/p2P1N1P/2NBP3/PPQ2P2/2K3RR w - - +solution Bxh7+ +id "ECM.693" +go +setboard 3qr1k1/1br2ppp/p2b4/8/PpNp4/3P4/1PP2PPP/R1BQ1RK1 b - - +solution Bxh2+ +id "ECM.699" +go +setboard r3r1k1/pp3pp1/3p4/2q4p/2P5/1PB2Q1P/n4PP1/3R1RK1 w - - +solution Bxg7 +id "ECM.713" +go +setboard r5k1/pn1q1rpp/2pp4/5R1N/bP6/4BQ2/P4PPP/2R3K1 w - - +solution Nxg7 +id "ECM.714" +go +setboard r3r1k1/p3bppp/q1b2n2/5Q2/1p1B4/1BNR4/PPP3PP/2K2R2 w - - +solution Rg3 +id "ECM.722" +go +setboard 3q1r2/1p1b1pk1/pn5p/3pN1pQ/3P3P/2r3B1/P4PP1/3RR1K1 w - - +solution Nxf7 +id "ECM.730" +go +setboard r3r1k1/1bqn1ppp/1pp2p2/8/3P4/1B4N1/PP3PPP/R2QR1K1 w - - +solution Bxf7+ +id "ECM.734" +go +setboard r3r1k1/pp3ppp/8/1Nbp3q/3NnBn1/2P5/PPQ2PPP/3R1RK1 b - - +solution Ngxf2 +id "ECM.735" +go +setboard rqb1k2r/1p1nbp1p/p4pp1/8/1PBN1P2/P1N1P3/7P/2RQ1RK1 w kq - +solution Bxf7+ +id "ECM.754" +go +setboard r2rn3/1p3pk1/p1pNn1pp/q3P3/P7/1PN4P/2QR1PP1/3R2K1 w - - +solution Nxf7 +id "ECM.764" +go +setboard rnb2rk1/pp3pbp/2p3pB/2q5/4P3/1BN5/PPP3PP/R2Q1R1K w - - +solution Rxf7 +id "ECM.770" +go +setboard 3qr1k1/1br1bp1p/p3p1pB/1p1nN3/3PB3/7Q/PP3PPP/3RR1K1 w - - +solution Nxf7 +id "ECM.771" +go +setboard r2r2k1/pb1nbpp1/1qp1pn1p/1p2N3/3P1B2/P1N1P3/BPQ2PPP/2R2RK1 w - - +solution Bxh6 +id "ECM.774" +go +setboard 1rbqnr2/5p1k/p1np3p/1p1Np3/4P2P/1Q2B3/PPP1BP2/2KR3R w - - +solution Bxh6 +id "ECM.779" +go +setboard r1br2k1/p1q2pp1/4p1np/2ppP2Q/2n5/2PB1N2/2P2PPP/R1B1R1K1 w - - +solution Bxh6 +id "ECM.780" +go +setboard 2r1r1k1/pb1n1pp1/1p1qpn1p/4N1B1/2PP4/3B4/P2Q1PPP/3RR1K1 w - - +solution Bxh6 +id "ECM.789" +go +setboard r2qr3/2p1b1pk/p5pp/1p2p3/nP2P1P1/1BP2RP1/P3QPK1/R1B5 w - - +solution Bxh6 +id "ECM.792" +go +setboard 2b2r1k/2p3pp/2Nb4/pP5q/2PP4/P4pP1/5P1P/R1BQ2K1 b - - +solution Bxg3 +id "ECM.803" +go +setboard 1rb2rk1/p1p1qppp/2p2n2/3P4/1b3P2/2NB4/PPPBQ1PP/2KR3R b - - +solution Ba3 +id "ECM.822" +go +setboard r1bq1rk1/ppp3p1/7p/3P2n1/2PQ1p2/1N5P/PPP2PPK/R1B2R2 b - - +solution Nf3+ +id "ECM.831" +go +setboard rqbn1rk1/1p3ppp/p3p3/8/4NP2/8/PPP1BQPP/1K1R3R w - - +solution Nf6+ +id "ECM.833" +go +setboard 3qr1k1/rp3pbp/2p3p1/3p1b2/N1nP4/P2NP3/1PQ2PPP/1BRR2K1 b - - +solution Rxe3 +id "ECM.846" +go +setboard 3r1rk1/p3q1pp/2Rb4/3P4/8/1P2Qp2/PB3PPP/3R2K1 b - - +solution Bxh2+ +id "ECM.858" +go +setboard 1r4k1/1q3pb1/r1b3p1/pp1Qp3/P3P3/1B2BP2/1PP3P1/1K1R3R w - - +solution Qd8+ +id "ECM.860" +go +setboard 8/2q1np1k/6p1/1PPn3p/8/P2Q3P/6P1/2R4K b - - +solution Nf5 +id "ECM.864" +go +setboard 7R/1p1r4/2b2p2/2Pp1qk1/3P1bp1/3N4/2Q2PB1/6K1 w - - +solution Rg8+ +id "ECM.866" +go +setboard 2kr1br1/ppp2p1p/2n1p1q1/2Nn4/3P4/1Q2PB2/PP1B1P1P/2R1K2R b K - +solution Qg1+ +id "ECM.875" +go +setboard r2r2k1/pp3ppp/2q5/2p5/2P1P1n1/P4P1b/1BQ1BP1P/R3R2K b - - +solution Rd2 +id "ECM.879" +go |
