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_confident_sample2.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_confident_sample2.ep_')
| -rw-r--r-- | tests/ecm_confident_sample2.ep_ | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/tests/ecm_confident_sample2.ep_ b/tests/ecm_confident_sample2.ep_ new file mode 100644 index 0000000..638063f --- /dev/null +++ b/tests/ecm_confident_sample2.ep_ @@ -0,0 +1,160 @@ +setboard r3kb1r/pp2pppp/3q4/3Pn3/6b1/2N1BN2/PP3PPP/R2QKB1R w KQkq - +solution Nxe5 +id "ECM.015" +go +setboard 5rk1/3r1p1p/3b2pQ/8/4q3/4B2P/3R1PP1/4R1K1 w - - +solution Rxd6 +id "ECM.077" +go +setboard 2kr1bnr/1ppq4/p3bp2/6pp/4p3/2N2NBP/PP3PP1/2RQ1RK1 w - - +solution Na4 +id "ECM.110" +go +setboard r1b1rk2/pp3ppQ/1np5/4q3/2B4N/4P3/PP3PP1/2R2K1R w - - +solution Qg8+ +id "ECM.114" +go +setboard rnb1r1k1/pp5p/2pp2p1/4b3/2P1P2q/1NN1BPp1/PP1QB1P1/3RR1K1 b - - +solution Bf4 +id "ECM.140" +go +setboard 8/1bq3kp/p5p1/1pb1p3/4P2P/2PQ2P1/1P5B/5N1K b - - +solution Qd8 +id "ECM.153" +go +setboard r1r3k1/1p1b1nq1/6p1/pN1p4/P2Np2R/1P2P3/1Q3PP1/1K5R w - - +solution Nd6 +id "ECM.159" +go +setboard 8/5p1k/4p1p1/3p2K1/3P1Q1P/P4P2/7q/8 b - - +solution f6+ +id "ECM.169" +go +setboard 4r1k1/1np1r1pp/1ppp1q2/6N1/1P3P2/4RQP1/7P/4R1K1 w - - +solution Qh5 +id "ECM.171" +go +setboard 2q1r1k1/1b3pbp/3p2p1/1Ppn3n/5P2/5B2/1P1B2PP/R2NNQ1K b - - +solution Ndxf4 +id "ECM.208" +go +setboard 7k/pp1q2pp/3Nr1n1/3B2Q1/2pP4/B3P1Pb/P6P/6K1 w - - +solution Qd8+ +id "ECM.221" +go +setboard 6k1/3b1p1p/6p1/2BPR3/8/4Q2P/1q3rPK/8 w - - +solution Re8+ +id "ECM.235" +go +setboard 2r2rk1/pb4pp/1p2p3/4Npq1/3P1n2/5P2/PP1R2PP/RB2Q1K1 b - - +solution Rc1 +id "ECM.249" +go +setboard r5k1/pp2ppb1/4qn2/r3B1p1/3P4/3QNP1R/PP2K1P1/7R w - - +solution Bxf6 +id "ECM.252" +go +setboard 6k1/1p3p2/4r1p1/1PPrbq1p/2QN4/P2R1P1P/R4KP1/8 b - - +solution Bg3+ +id "ECM.270" +go +setboard r1b2rk1/1pqp1ppp/p1n1pn2/5N2/8/2PBB3/P1P2PPP/R2QR1K1 w - - +solution Nxg7 +id "ECM.280" +go +setboard 8/5p2/4p1k1/4P1p1/2rBRbK1/5P2/r4P2/7R b - - +solution Rxd4 +id "ECM.335" +go +setboard 4q1r1/5kpp/2p1nb2/2PpQp2/r4P2/1N3P2/1BP1R2P/6RK w - - +solution Rxg7+ +id "ECM.344" +go +setboard r3r1k1/4pp1p/b5pB/q1pP4/3b4/2N4P/PP4P1/R2RQ2K w - - +solution Rxd4 +id "ECM.357" +go +setboard r1b1nrk1/p2n3p/2pp4/8/2P2q1N/1PB4P/P4PB1/R2QR1K1 w - - +solution Bd5+ +id "ECM.385" +go +setboard 7k/5rp1/p1bQB2p/1p4nN/4P3/1Pq5/P5PP/3R3K b - - +solution Bxe4 +id "ECM.386" +go +setboard 7r/pp4k1/3pn1p1/q1pB1b2/2P5/5NR1/1P3PP1/2Q3K1 w - - +solution b4 +id "ECM.423" +go +setboard 1n2n1r1/r3qppk/p2p3p/3PpP1P/1P2P3/3B2RQ/3B1P1K/6R1 w - - +solution Bxh6 +id "ECM.433" +go +setboard r2r3k/ppq3pp/2p1n3/4NQ2/3P4/1B6/PP3PPP/6K1 w - - +solution Ng6+ +id "ECM.454" +go +setboard 3qrbk1/1r3p2/p1bp1Pp1/1p2p1Pp/4P2R/1P2BB1Q/P1P4P/R6K w - - +solution Bxh5 +id "ECM.460" +go +setboard r5k1/1N3ppp/4b3/1Nq5/Pn3pn1/5B2/1PPQ3P/R6K b - - +solution Qxb5 +id "ECM.481" +go +setboard r1bqn1r1/p2k1pp1/1p5p/n1pPpN2/2P1P3/P1PBB2P/4Q1P1/R4RK1 w - - +solution Nxh6 +id "ECM.483" +go +setboard 3Rq1k1/1pp1Ppbp/r1b3p1/p7/P1N5/1P4P1/1B2PP1P/2R3K1 w - - +solution Nd6 +id "ECM.495" +go +setboard 4rqk1/p5b1/3p3p/3Pn1p1/1pP1NrP1/4NP2/P3Q1P1/1K1RR3 b - - +solution Nxf3 +id "ECM.501" +go +setboard 1r4nk/3b2bp/3p4/3P3p/2pNPq2/P1N2p1P/1P3Q2/1R4KR b - - +solution Rxb2 +id "ECM.570" +go +setboard 4r1kb/5p1p/6pB/3Np3/4n3/P3Q1PP/2q2P2/R5K1 w - - +solution Rc1 +id "ECM.576" +go +setboard 7k/4b2p/5p1P/5PP1/1pNp1P2/1P1B4/2P2K2/r7 w - - +solution g6 +id "ECM.619" +go +setboard 3qr1k1/p4ppp/1p1P4/2r1nN2/4P2n/P7/1B4P1/3QRRK1 w - - +solution d7 +id "ECM.632" +go +setboard b3r1k1/2rN1ppp/2n1p3/p7/P3BP2/1R6/q1P2QPP/3R2K1 w - - +solution Bxh7+ +id "ECM.668" +go +setboard 7k/1bp1P1p1/3p2rp/1pb2p1q/5P2/1BP2N1P/1P4P1/R1B2R1K b - - +solution Rxg2 +id "ECM.709" +go +setboard rn3rk1/ppq2ppp/2pb1nb1/5N2/2BP4/8/PPP1N1P1/R1B1QR1K w - - +solution Nxg7 +id "ECM.716" +go +setboard 2rr2k1/4bppp/p1n1p3/3q4/1p1P2N1/2P3R1/P3QPPP/2B2RK1 w - - +solution Nh6+ +id "ECM.727" +go +setboard r3r1k1/b1p2pn1/p2q1Bp1/1p1bN1Qp/3P4/2P4P/PPB2PP1/R3R1K1 w - - +solution Nxg6 +id "ECM.819" +go +setboard k2r3r/ppq2p1p/n1pb1Pp1/4p3/2Q5/1R2B1P1/PPP2PBP/R5K1 w - - +solution Rxb7 +id "ECM.821" +go +setboard r3k2r/1q3ppp/p3p3/2b1P3/p2N1Q2/P7/1PP3PP/3R1R1K w kq - +solution Nxe6 +id "ECM.845" +go |
