summaryrefslogtreecommitdiff
path: root/tests/ecm_confident_sample2.ep_
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2026-08-29 00:30:53 -0700
committerScott Gasch <[email protected]>2026-08-29 00:30:53 -0700
commit917bf1260ae217bdcbdbc11c2c37cdb5d3a8eae9 (patch)
tree8013781f51e53eaf1fe3d4f45367e920d4c39786 /tests/ecm_confident_sample2.ep_
parent366eebaf6b72fc6b56ea06a71f0276069a501dc7 (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