Finished
TestTCEngineAuthorResult
gen5 net (gen5+gen5b data at 10k nodes, 99.6M positions, gen4 recipe) vs gen4_h256_cos60.
4.0+0.04SolsticeDragonLLR: -2.95 (-2.94, 2.94) [0.00, 5.00]
Games: 6404 W: 1546 L: 1644 D: 3214
Ptnml(0-2): 124, 813, 1390, 787, 88
RFP margin += 50% of |corrected - raw eval| (correction-history complexity, after #67's LMR version passed).
4.0+0.04SolsticeDragonLLR: -2.87 (-2.94, 2.94) [0.00, 5.00]
Games: 5970 W: 1382 L: 1476 D: 3112
Ptnml(0-2): 100, 744, 1373, 686, 82
LMR: reduce 1 less when |corrected - raw eval| > 48 (correction-history complexity).
4.0+0.04SolsticeDragonLLR: 3.07 (-2.94, 2.94) [0.00, 5.00]
Games: 4958 W: 1217 L: 1070 D: 2671
Ptnml(0-2): 56, 554, 1123, 679, 67
tt-pv SPRT diff
tt-pv: TT remembers PV positions (16-byte entries kept); LMR reduces them 1 less.
4.0+0.04SolsticeDragonLLR: 3.01 (-2.94, 2.94) [0.00, 5.00]
Games: 6882 W: 1579 L: 1433 D: 3870
Ptnml(0-2): 60, 758, 1685, 852, 86
Reset killers[ply+1] at each node (Ethereal)
4.0+0.04SolsticeDragonLLR: -2.95 (-2.94, 2.94) [0.00, 5.00]
Games: 18372 W: 3900 L: 3941 D: 10531
Ptnml(0-2): 183, 2188, 4483, 2151, 181
Minor (N, B + kings) and major (R, Q + kings) correction histories, weights 100%. Keys kept incrementally (movegen_test diff 0 failures).
4.0+0.04SolsticeDragonLLR: 3.07 (-2.94, 2.94) [0.00, 5.00]
Games: 3634 W: 855 L: 721 D: 2058
Ptnml(0-2): 29, 371, 897, 477, 43
Syzygy WDL probing in search, 3-4-5 tables (Xeon worker only)
4.0+0.04SolsticeDragonLLR: 3.08 (-2.94, 2.94) [0.00, 5.00]
Games: 7052 W: 1586 L: 1437 D: 4029
Ptnml(0-2): 62, 781, 1703, 906, 74
Syzygy code, no TBs: REPEAT of #60 (-14.5 with identical search; checking for a fluke)
4.0+0.04SolsticeDragonLLR: 2.97 (-2.94, 2.94) [-5.00, 0.00]
Games: 6764 W: 1536 L: 1447 D: 3781
Ptnml(0-2): 68, 743, 1686, 802, 83
Syzygy probing code, no tablebases (non-regression: hooks must cost nothing)
4.0+0.04SolsticeDragonLLR: -3.14 (-2.94, 2.94) [-5.00, 0.00]
Games: 3246 W: 625 L: 760 D: 1861
Ptnml(0-2): 42, 420, 820, 313, 28
Pawn history [pawnkey%1024][piece][to] in quiet ordering (sum/3)
4.0+0.04SolsticeDragonLLR: -3.22 (-2.94, 2.94) [0.00, 5.00]
Games: 5278 W: 1074 L: 1181 D: 3023
Ptnml(0-2): 66, 677, 1250, 590, 56
NMP skipped when TT entry is an upper bound < beta
4.0+0.04SolsticeDragonLLR: -3.13 (-2.94, 2.94) [0.00, 5.00]
Games: 25850 W: 5576 L: 5594 D: 14680
Ptnml(0-2): 296, 3101, 6146, 3089, 293
Fifty-move eval damping: eval *= (200 - hmc) / 200
4.0+0.04SolsticeDragonLLR: -2.96 (-2.94, 2.94) [0.00, 5.00]
Games: 7352 W: 1581 L: 1670 D: 4101
Ptnml(0-2): 84, 953, 1692, 862, 85
Qsearch delta pruning, fixed scale: stand_pat + 3*victim + 400 <= alpha (#53 lacked the x3: -192)
4.0+0.04SolsticeDragonLLR: -1.95 (-2.94, 2.94) [0.00, 5.00]
Games: 8192 W: 1753 L: 1797 D: 4642
Ptnml(0-2): 90, 1022, 1915, 980, 89
SE: -2 extension at cut nodes when not singular (SF cutNode case)
4.0+0.04SolsticeDragonLLR: -2.99 (-2.94, 2.94) [0.00, 5.00]
Games: 6576 W: 1387 L: 1480 D: 3709
Ptnml(0-2): 76, 841, 1547, 748, 76
TT-adjusted eval for RFP/razoring/NMP/futility (bound-consistent TT score)
4.0+0.04SolsticeDragonLLR: -3.05 (-2.94, 2.94) [0.00, 5.00]
Games: 31178 W: 6867 L: 6860 D: 17451
Ptnml(0-2): 392, 3704, 7364, 3763, 366
Qsearch delta pruning: stand_pat + victim + 200 <= alpha -> skip
4.0+0.04SolsticeDragonLLR: -3.03 (-2.94, 2.94) [0.00, 5.00]
Games: 418 W: 32 L: 242 D: 144
Ptnml(0-2): 63, 95, 41, 9, 1
SPSA tune #49 values (27 params moved; nmp_r 5, asp_delta 34, lmr_killer 3, se_depth 7, qs_see 34)
4.0+0.04SolsticeDragonLLR: 3.03 (-2.94, 2.94) [0.00, 5.00]
Games: 3214 W: 789 L: 650 D: 1775
Ptnml(0-2): 32, 348, 734, 435, 58
SPSA #2 of 2026-09-30: all 42 search params after SE, qsTT, corrhist x3, razoring, TM, fail-soft, hist x8, cut-node, conthist (master ba7691f)
2.0+0.02SolsticeDragonTuning 42 Parameters
1000/1000 Iterations
64028/64000 Games Played
LMR history term revived: (butterfly + conthist1 + conthist2) / 12288 (was always 0)
4.0+0.04SolsticeDragonLLR: -0.46 (-2.94, 2.94) [0.00, 5.00]
Games: 16478 W: 3618 L: 3568 D: 9292
Ptnml(0-2): 189, 1949, 3912, 2001, 188
History pruning (retry at 8x scale): non-PV, depth<=4, quiet non-killer, hist < -512*depth
4.0+0.04SolsticeDragonLLR: 3.03 (-2.94, 2.94) [0.00, 5.00]
Games: 11268 W: 2568 L: 2400 D: 6300
Ptnml(0-2): 125, 1281, 2655, 1447, 126
LMR +1 for quiets when the TT move is a capture (fixed: flag computed before make)
4.0+0.04SolsticeDragonLLR: -3.04 (-2.94, 2.94) [0.00, 5.00]
Games: 8732 W: 1838 L: 1924 D: 4970
Ptnml(0-2): 123, 1053, 2067, 1033, 90
LMR history term = (butterfly + conthist1 + conthist2) * 2/3
4.0+0.04SolsticeDragonLLR: 0.00 (-2.94, 2.94) [0.00, 5.00]
Games: 0 W: 0 L: 0 D: 0
Ptnml(0-2): 0, 0, 0, 0, 0
Continuation history 1+2 ply in quiet ordering, at the 8x history scale (retry of #15)
4.0+0.04SolsticeDragonLLR: 3.03 (-2.94, 2.94) [0.00, 5.00]
Games: 14334 W: 3270 L: 3087 D: 7977
Ptnml(0-2): 164, 1665, 3350, 1800, 188
Lazy SMP scaling: Threads=4 vs Threads=1, same commit (2cc7439)
4.0+0.04 smpSolsticeDragonLLR: 3.06 (-2.94, 2.94) [0.00, 10.00]
Games: 240 W: 115 L: 15 D: 110
Ptnml(0-2): 0, 1, 33, 71, 15
IIR also at cut nodes (was PV only)
4.0+0.04SolsticeDragonLLR: -0.46 (-2.94, 2.94) [0.00, 5.00]
Games: 6076 W: 1347 L: 1340 D: 3389
Ptnml(0-2): 81, 701, 1461, 720, 75