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_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_confident_quick.ep_')
| -rw-r--r-- | tests/ecm_confident_quick.ep_ | 360 |
1 files changed, 360 insertions, 0 deletions
diff --git a/tests/ecm_confident_quick.ep_ b/tests/ecm_confident_quick.ep_ new file mode 100644 index 0000000..876de2a --- /dev/null +++ b/tests/ecm_confident_quick.ep_ @@ -0,0 +1,360 @@ +setboard 2r2bk1/4qp2/3n2p1/2R1p1Np/2p1N3/r6P/1Q3PP1/3R2K1 w - - +solution Rxc8 +id "ECM.035" +go +setboard r2b1rk1/5qp1/2p2P2/2p3Pp/p6P/2Q5/PPP5/2KR2R1 w - - +solution g6 +id "ECM.147" +go +setboard r1b2rk1/1pqp1ppp/p1n1pn2/5N2/8/2PBB3/P1P2PPP/R2QR1K1 w - - +solution Nxg7 +id "ECM.280" +go +setboard r1b1r1k1/pp3p1p/1q2p1pQ/2b1P1B1/8/P2B3P/1P3PP1/2R1R1K1 w - - +solution Rxc5 +id "ECM.339" +go +setboard 3r1rk1/1pq1bppp/p7/n2RN3/P7/1P6/1B2QPPP/R5K1 w - - +solution Nd7 +id "ECM.382" +go +setboard r1b2rk1/1p3pbp/2p3p1/p1q5/1P6/1Q4P1/1P2PPBP/R1B1R1K1 b - - +solution Be6 +id "ECM.591" +go +setboard 2kr3r/ppp1qpp1/2p5/2b2b2/2P1pPP1/1P2P1p1/PBQPB3/RN2K1R1 b Q - +solution Rh1 +id "ECM.610" +go +setboard 5rk1/pbrn1ppp/1ppN1q2/2P1p3/3P4/1PRB4/P3QPPP/5RK1 w - - +solution Bxh7+ +id "ECM.672" +go +setboard rq1r1bk1/1b3pp1/3pn2p/1n2BN1P/1P2P3/3R1NP1/3Q1PB1/2R3K1 w - - +solution Bxg7 +id "ECM.728" +go +setboard 2r3k1/pbq1np1p/1p1b1Bp1/8/6QP/2P2N2/B4PP1/4R1K1 w - - +solution Bxf7+ +id "ECM.733" +go +setboard 6k1/p1qb1p1p/1p3np1/2b2p2/2B5/2P3N1/PP2QPPP/4N1K1 b - - +solution Bxf2+ +id "ECM.005" +go +setboard r1b1r1k1/p1p3pp/2p2n2/2bp4/5P2/3BBQPq/PPPK3P/R4N1R b - - +solution Bg4 +id "ECM.008" +go +setboard 3r4/1b2k3/1pq1pp2/p3n1pr/2P5/5PPN/PP1N1QP1/R2R2K1 b - - +solution Rxh3 +id "ECM.009" +go +setboard r1b2r1k/3nN2p/p2Q1p2/8/4PP2/1R6/q1PK2PP/4R3 w - - +solution Qd5 +id "ECM.033" +go +setboard 2k4r/ppp1n1p1/2n2qb1/2N5/Q1P3p1/P2r3P/1P3PB1/R1B2RK1 w - - +solution Qb5 +id "ECM.037" +go +setboard r1b1rnk1/1p3pb1/1qpp2p1/2n5/2PNP2p/1PN3PP/3R1PBK/BR1Q4 b - - +solution Rxa1 +id "ECM.039" +go +setboard 5r1k/pb2r1bp/1p2B1p1/n7/4qNQ1/4B3/P4PPP/2RR2K1 w - - +solution Rd4 +id "ECM.080" +go +setboard 1r3rk1/5pp1/1n2qn1p/1p1pPNb1/2pP2QP/2P5/1PB3P1/R1B1R1K1 w - - +solution exf6 +id "ECM.082" +go +setboard r1k4r/ppp1b3/5Npp/4pb1Q/8/1B2B3/PqP2PPP/2RR2K1 w - - +solution Qxf5+ +id "ECM.107" +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 1r2k2r/p5bp/4p1p1/q2pn3/1p2N1P1/6QP/PPP5/1KBR3R w k - +solution Bh6 +id "ECM.149" +go +setboard 3qn2k/1p3Bp1/rbn4p/2p5/p1P2p2/P2b2PP/1BQNRP2/1R4K1 w - - +solution Qxd3 +id "ECM.173" +go +setboard 1q6/2rk1p2/p1n1b1rN/3p2p1/8/3Q4/PP1B1PPP/2R1R1K1 w - - +solution Nxf7 +id "ECM.176" +go +setboard 3r2k1/p2r1p1p/1pR1p1qP/3P1pP1/3R4/1P2Q3/P4K2/8 w - - +solution dxe6 +id "ECM.183" +go +setboard 1r3rk1/p4pbp/q1p2pp1/3p1b2/1n1P1P1B/PB3N2/1PPQR1PP/2KR4 b - - +solution Bxc2 +id "ECM.194" +go +setboard 2q1r1k1/1b3pbp/3p2p1/1Ppn3n/5P2/5B2/1P1B2PP/R2NNQ1K b - - +solution Ndxf4 +id "ECM.208" +go +setboard 8/2p2Q1p/1rp5/p3q1kp/P7/2P2RP1/5PK1/8 w - - +solution Rf5+ +id "ECM.233" +go +setboard 6k1/3b1p1p/6p1/2BPR3/8/4Q2P/1q3rPK/8 w - - +solution Re8+ +id "ECM.235" +go +setboard 6rr/1b3k1p/pbqppPn1/1p5Q/4PN2/P6R/1PP3BP/2B2R1K w - - +solution Qxh7+ +id "ECM.243" +go +setboard 2r1rbk1/5pp1/bq5p/1pnBPN2/6Q1/N7/5PPP/R2R2K1 w - - +solution Bxf7+ +id "ECM.250" +go +setboard r5k1/pp2ppb1/4qn2/r3B1p1/3P4/3QNP1R/PP2K1P1/7R w - - +solution Bxf6 +id "ECM.252" +go +setboard 1R2br1k/5r1p/p2p1P2/6RQ/3p1P2/4p2B/q6P/5N1K w - - +solution Rxe8 +id "ECM.253" +go +setboard 4Rnk1/2p2pp1/3r3p/p2P4/P5Q1/1B5P/5PK1/q7 w - - +solution Rxf8+ +id "ECM.257" +go +setboard r2qk2r/1pp2ppp/p3pnn1/6N1/1B1P2P1/1Q2P2P/PP3PK1/R6R b kq - +solution Nh4+ +id "ECM.272" +go +setboard 5r1k/1pqb3p/2n5/p1pB4/2Pp1r1P/1P5P/R2N2K1/3Q1R2 b - - +solution Bxh3+ +id "ECM.282" +go +setboard r1rbb3/1R3pkp/2pBp1p1/p3P3/q6P/6P1/P2Q1P2/1R3BK1 w - - +solution R1b4 +id "ECM.316" +go +setboard r3r1k1/pbqn1ppp/1p3n2/1Pb5/2p5/5N1P/PBQ1BPP1/1N1R1RK1 b - - +solution Rxe2 +id "ECM.337" +go +setboard 1k2r2r/1bpQN2p/1p6/P3p2q/4np2/2P2N2/2P2PPP/R3R1K1 b - - +solution Rxe7 +id "ECM.340" +go +setboard 2b1r2k/2Q4p/4q3/1pp5/3b4/4NP2/1P3BP1/3R2K1 w - - +solution Rxd4 +id "ECM.348" +go +setboard 2rq3r/5p2/p3pkbQ/3p4/3N4/2P4R/P4PP1/4R1K1 w - - +solution Rf3+ +id "ECM.352" +go +setboard r3r1k1/4pp1p/b5pB/q1pP4/3b4/2N4P/PP4P1/R2RQ2K w - - +solution Rxd4 +id "ECM.357" +go +setboard r3k3/1pqb1p2/p3p3/4n2r/3N1Q2/2P5/PP4B1/4RRK1 w q - +solution Rxe5 +id "ECM.364" +go +setboard 7k/p1p1r2p/1p1pnr1q/5pp1/2PPPp2/2PB1P1P/P2Q1PRK/7R b - - +solution g4 +id "ECM.372" +go +setboard 7k/5rp1/p1bQB2p/1p4nN/4P3/1Pq5/P5PP/3R3K b - - +solution Bxe4 +id "ECM.386" +go +setboard r3r1k1/1pp2p1b/7p/2Q5/2PP2p1/2P1NpPq/P2R1P1P/6RK b - - +solution Rxe3 +id "ECM.391" +go +setboard 3r2k1/pb3p1p/1q4p1/2b1P3/1Pp5/2P1p1P1/P3Q1BP/R1B4K b - - +solution Qc6 +id "ECM.400" +go +setboard 1r1q1k2/R4pp1/5p1r/1p1p1n1p/3Pb2N/1BP5/2P1Q1PP/4R1K1 w - - +solution Qxe4 +id "ECM.405" +go +setboard 8/2R4p/2R3bk/8/5N1P/1p3PP1/2pqP1K1/8 w - - +solution g4 +id "ECM.426" +go +setboard 2r3k1/n3qppp/1B1r1n2/N7/N4P2/1Q4PP/P5B1/R1b4K b - - +solution Qe1+ +id "ECM.444" +go +setboard 7r/2p1q1k1/1p3r1p/p1pPpPp1/2P1P1P1/PP6/3Q2KR/7R w - - +solution Qxg5+ +id "ECM.445" +go +setboard 6r1/6rk/3p3p/p2Rp3/R1PqPp1b/2N2Q2/6PP/7K b - - +solution Rxg2 +id "ECM.450" +go +setboard r2r3k/ppq3pp/2p1n3/4NQ2/3P4/1B6/PP3PPP/6K1 w - - +solution Ng6+ +id "ECM.454" +go +setboard r2q1rk1/pp1n2pp/2pb4/1P1p3n/P1PPpP2/4P2b/1BNNBP1P/R2QR1K1 b - - +solution Nxf4 +id "ECM.496" +go +setboard r2qkr2/1p3pQp/2p1b3/1B1pN3/1p6/8/1P1K1PPP/2B1R3 w q - +solution Nxc6 +id "ECM.502" +go +setboard 1k1r2r1/p1p3q1/2p2p2/3pn3/1P1b2bB/1QN5/P4PPP/1R2RBK1 b - - +solution Nf3+ +id "ECM.519" +go +setboard r2q4/5p1P/2p1bR2/ppk1p1P1/3pB2Q/8/PPP5/6K1 w - - +solution g6 +id "ECM.521" +go +setboard 5r1k/1q2R3/8/6Q1/8/8/6P1/7K b - - +solution Rf1+ +id "ECM.548" +go +setboard r5r1/4q2k/p2p3p/5p2/4p3/P2QR3/1PP2PPP/4R1K1 w - - +solution Rxe4 +id "ECM.558" +go +setboard 1r4nk/3b2bp/3p4/3P3p/2pNPq2/P1N2p1P/1P3Q2/1R4KR b - - +solution Rxb2 +id "ECM.570" +go +setboard 4r1k1/1ppQr1p1/1p1p1pP1/3P3p/7P/1P3q2/P1P5/1KRR4 w - - +solution Re1 +id "ECM.574" +go +setboard 4k3/4Bp2/1p2nP1P/2p5/2K1b1B1/8/P7/8 w - - +solution Bf3 +id "ECM.584" +go +setboard 1r3qk1/pb3p1p/1pn2PpQ/2pN4/3r4/5B2/PPP4P/4RRK1 w - - +solution Ne7+ +id "ECM.611" +go +setboard 8/p3q1k1/6p1/1p3nP1/2pp1QBr/P2P4/1PP2K2/R7 b - - +solution Qe3+ +id "ECM.618" +go +setboard 3q1k2/5p2/p5pN/1b2Q2P/8/8/5PPK/8 w - - +solution Qh8+ +id "ECM.622" +go +setboard 8/6kP/6p1/1p1pP3/pP6/P1n2K2/2N5/8 w - - +solution e6 +id "ECM.638" +go +setboard 5r2/R4p2/5P1k/4PK2/1p6/8/8/8 w - - +solution Rxf7 +id "ECM.643" +go +setboard 1r1qr1k1/5p1p/1n2p1p1/pp1pP1P1/2pP1BB1/PnP3P1/1P3PK1/1R1Q3R w - - +solution Rxh7 +id "ECM.663" +go +setboard 1r2rnk1/2R2bpp/p2q4/1p1N2R1/5P2/1Q1B3P/PP4P1/7K w - - +solution Rxg7+ +id "ECM.702" +go +setboard 4rrk1/2qb2pp/p5P1/1p2p3/1b2P3/2N5/PPPQ4/1K1R2R1 w - - +solution gxh7+ +id "ECM.704" +go +setboard 3r1rk1/5pp1/pq1n1n1p/2pPR3/2B2P2/1PBQ2RP/P5P1/6K1 w - - +solution Rxg7+ +id "ECM.715" +go +setboard rn3rk1/ppq2ppp/2pb1nb1/5N2/2BP4/8/PPP1N1P1/R1B1QR1K w - - +solution Nxg7 +id "ECM.716" +go +setboard r4rk1/1p1q1ppp/p1b4B/8/2R3R1/P2P4/1b1N1QPP/6K1 w - - +solution Bxg7 +id "ECM.723" +go +setboard r1bqkbnr/pp2ppp1/2p4p/3n2N1/2BP4/5N2/PPP2PPP/R1BQK2R w KQkq - +solution Nxf7 +id "ECM.731" +go +setboard r2qr1k1/1ppb1p1p/p1np2p1/7Q/3PP2b/1B2N2P/PP3PP1/R1B2RK1 w - - +solution Bxf7+ +id "ECM.732" +go +setboard r2r2k1/1b2qpp1/1p2n3/p1b1p2p/4P1n1/PP1B2PP/1B1NQP2/R3NRK1 b - - +solution Nxf2 +id "ECM.736" +go +setboard 2r1r1k1/1pq1bp1p/p3pnp1/P2n2N1/7R/2P4P/1PB1QPP1/2B1R1K1 w - - +solution Nxf7 +id "ECM.748" +go +setboard 2rqrbk1/pb1n1p1p/1p2pnp1/4N3/2BP1N2/1P2Q3/PB3PPP/3R1RK1 w - - +solution Nxf7 +id "ECM.757" +go +setboard r1bqrbk1/5p1p/2pp2nB/pp5Q/4P3/PBNPR2P/1P4P1/R5K1 w - - +solution Bxf7+ +id "ECM.759" +go +setboard r2r4/p4pk1/2p3p1/1p1nPR2/5p1Q/2N5/PPPq4/1K4R1 w - - +solution e6 +id "ECM.807" +go +setboard r2q1rk1/pp2ppb1/3pn1pQ/3R4/2P3B1/4BR2/PP4PP/6K1 w - - +solution Qxg6 +id "ECM.813" +go +setboard r2q1rk1/pb1nbp1p/1p2p1p1/4N1BQ/2PP4/P7/5PPP/RB2R1K1 w - - +solution Nxg6 +id "ECM.817" +go +setboard k7/pp1N4/4P3/5P2/8/5p2/1R6/B4Knq w - - +solution Nb6+ +id "ECM.823" +go +setboard 1rbq2k1/b1p3pp/p1Pp4/3Ppr2/8/5N2/PPQ2PPP/R1B2RK1 b - - +solution Rxf3 +id "ECM.826" +go +setboard 1n2r3/p1pq1kp1/1b1pNpp1/3P4/5RP1/3Q3P/1B3P2/6K1 w - - +solution Bxf6 +id "ECM.830" +go +setboard r1b1k1nr/3n1p1p/1qpBp1p1/pp2b3/4PN2/PBN2Q2/1PP2PPP/2KR3R w kq - +solution Nxe6 +id "ECM.842" +go +setboard r3k2r/1q3ppp/p3p3/2b1P3/p2N1Q2/P7/1PP3PP/3R1R1K w kq - +solution Nxe6 +id "ECM.845" +go +setboard 1r6/5pk1/p1b2qpp/P1P1n3/1N6/Q5NP/5PP1/3R2K1 b - - +solution Bxg2 +id "ECM.859" +go +setboard 2R5/p3q1kp/6p1/3p4/b2P2p1/Pr4N1/5Q2/3K3R w - - +solution Nf5+ +id "ECM.861" +go +setboard 1r3r2/6kp/3p1pp1/qnp1pP2/1p2P2N/3P4/PPPQ1P1P/1K1R2R1 w - - +solution fxg6 +id "ECM.870" +go |
