| Finished | ||||
|---|---|---|---|---|
| Test | TC | Engine | Author | Result |
Fail-soft qsearch stand pat + RFP returns (eval+beta)/2 | 4.0+0.04 | Solstice | Dragon | LLR: 2.98 (-2.94, 2.94) [0.00, 5.00] Games: 2924 W: 724 L: 589 D: 1611 Ptnml(0-2): 27, 317, 659, 412, 47 |
TT replacement rebased on SE master (non-regression; #29 was +5.5 +- 4.7 at the 8k cap on the old master) | 4.0+0.04 | Solstice | Dragon | LLR: 0.53 (-2.94, 2.94) [-5.00, 0.00] Games: 24674 W: 5677 L: 5761 D: 13236 Ptnml(0-2): 370, 3003, 5644, 2981, 339 |
History bonus/malus x8 (gravity now saturates), LMR hist divisor x8, no 4999 clamp in the quiet stage | 4.0+0.04 | Solstice | Dragon | LLR: 3.00 (-2.94, 2.94) [0.00, 5.00] Games: 8900 W: 2117 L: 1950 D: 4833 Ptnml(0-2): 142, 1010, 1991, 1153, 154 |
LMR +1 for quiets when the TT move is a capture | 4.0+0.04 | Solstice | Dragon | LLR: 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 |
Capture history [piece][to][victim]: MVV-LVA + hist/8 ordering, bonus/malus on cutoffs | 4.0+0.04 | Solstice | Dragon | LLR: -1.69 (-2.94, 2.94) [0.00, 5.00] Games: 12110 W: 2941 L: 2960 D: 6209 Ptnml(0-2): 231, 1477, 2652, 1470, 225 |
Cut-node tracking (SF-style flags), LMR +1 at expected cut nodes | 4.0+0.04 | Solstice | Dragon | LLR: 3.07 (-2.94, 2.94) [0.00, 5.00] Games: 10554 W: 2418 L: 2247 D: 5889 Ptnml(0-2): 118, 1232, 2464, 1287, 176 |
Continuation correction history [stm][last move piece][to], on top of pawn + non-pawn corrhist | 4.0+0.04 | Solstice | Dragon | LLR: 2.99 (-2.94, 2.94) [0.00, 5.00] Games: 4122 W: 1021 L: 881 D: 2220 Ptnml(0-2): 38, 473, 922, 567, 61 |
TM: soft *= (1.25-0.05*stability) * (1.5-bestmove node share)*1.35 | 4.0+0.04 | Solstice | Dragon | LLR: 3.06 (-2.94, 2.94) [0.00, 5.00] Games: 2522 W: 678 L: 534 D: 1310 Ptnml(0-2): 35, 255, 560, 353, 58 |
Razoring: non-PV, depth<=3, eval + 250*d < alpha -> qsearch, fail low if q <= alpha | 4.0+0.04 | Solstice | Dragon | LLR: 3.12 (-2.94, 2.94) [0.00, 5.00] Games: 4938 W: 1209 L: 1058 D: 2671 Ptnml(0-2): 61, 552, 1099, 689, 68 |
ProbCut: non-PV, depth>=5, beta+200, SEE-filtered captures, qsearch then depth-4 verification | 4.0+0.04 | Solstice | Dragon | LLR: -2.97 (-2.94, 2.94) [0.00, 5.00] Games: 32400 W: 7478 L: 7462 D: 17460 Ptnml(0-2): 485, 3894, 7389, 3984, 448 |
LMR: -1 at PV nodes, -1 for checking quiets | 4.0+0.04 | Solstice | Dragon | LLR: -0.35 (-2.94, 2.94) [0.00, 5.00] Games: 24576 W: 6021 L: 5927 D: 12628 Ptnml(0-2): 423, 2932, 5495, 3004, 434 |
Non-pawn correction history (per colour, half weight each) on top of pawn corrhist | 4.0+0.04 | Solstice | Dragon | LLR: 3.04 (-2.94, 2.94) [0.00, 5.00] Games: 3464 W: 867 L: 727 D: 1870 Ptnml(0-2): 39, 367, 794, 479, 53 |
TT replacement: same key / older generation / depth+3 >= stored depth (was always replace) | 4.0+0.04 | Solstice | Dragon | LLR: 3.11 (-2.94, 2.94) [0.00, 5.00] Games: 10476 W: 2639 L: 2455 D: 5382 Ptnml(0-2): 177, 1239, 2268, 1331, 223 |
Improving (static eval > 2 plies ago): RFP margin*(depth-improving), LMR +1 when not improving | 4.0+0.04 | Solstice | Dragon | LLR: -2.97 (-2.94, 2.94) [0.00, 5.00] Games: 8192 W: 1933 L: 2023 D: 4236 Ptnml(0-2): 143, 1017, 1853, 953, 130 |
qsearch TT: probe/cutoff, TT move first, store at depth 0 (never evicting main-search entries) | 4.0+0.04 | Solstice | Dragon | LLR: 3.04 (-2.94, 2.94) [0.00, 5.00] Games: 3206 W: 837 L: 693 D: 1676 Ptnml(0-2): 44, 340, 707, 452, 60 |
History pruning: non-PV, depth<=4, quiet non-killer with hist < -2048*depth | 4.0+0.04 | Solstice | Dragon | LLR: 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 |
Singular extensions (depth>=8, sb = tt - 2d, (d-1)/2 search) + double ext (non-PV, 20 margin, max 6) + multicut + negative ext | 4.0+0.04 | Solstice | Dragon | LLR: 3.09 (-2.94, 2.94) [0.00, 5.00] Games: 1264 W: 379 L: 237 D: 648 Ptnml(0-2): 12, 108, 274, 202, 36 |
NMP dynamic R = 4 + depth/4 + min((eval-beta)/200, 3) | 4.0+0.04 | Solstice | Dragon | LLR: -3.06 (-2.94, 2.94) [0.00, 5.00] Games: 4344 W: 973 L: 1085 D: 2286 Ptnml(0-2): 91, 552, 970, 496, 63 |
net gen34_h512_cos40 vs gen4_h256_cos60: gen3+gen4 data (193.9M), hidden 512, 40-epoch cosine | 4.0+0.04 | Solstice | Dragon | LLR: -2.98 (-2.94, 2.94) [0.00, 5.00] Games: 1486 W: 318 L: 449 D: 719 Ptnml(0-2): 55, 210, 311, 145, 22 |
net gen4_h256_cos60 vs gen3_h256_cos60: gen4 data (104.5M, cos60 + current search), same arch/recipe | 4.0+0.04 | Solstice | Dragon | LLR: 3.00 (-2.94, 2.94) [0.00, 5.00] Games: 4818 W: 1351 L: 1193 D: 2274 Ptnml(0-2): 91, 541, 1024, 625, 128 |
net: cos60 + 10 epochs quantisation-aware fine-tuning (rounded-net val loss 0.46947 -> 0.46937) | 4.0+0.04 | Solstice | Dragon | LLR: -1.23 (-2.94, 2.94) [0.00, 5.00] Games: 1902 W: 449 L: 493 D: 960 Ptnml(0-2): 34, 244, 435, 208, 30 |
audit 2: no repetitions across null moves (pliesFromNull), 50-move rule vs checkmate, mate stop only when depth >= mate length | 4.0+0.04 | Solstice | Dragon | LLR: -0.39 (-2.94, 2.94) [-5.00, 0.00] Games: 9146 W: 2177 L: 2234 D: 4735 Ptnml(0-2): 153, 1130, 2062, 1077, 151 |
net gen3_h256_cos60: same data/arch, 60 epochs warmup+cosine vs 15 epochs step decay (val 0.4703 -> 0.4692) | 4.0+0.04 | Solstice | Dragon | LLR: 3.09 (-2.94, 2.94) [0.00, 5.00] Games: 926 W: 327 L: 173 D: 426 Ptnml(0-2): 10, 70, 177, 168, 38 |
speed: SIMD SCReLU output + SIMD accumulator updates, aligned accumulators, single-SEE qsearch, plain-net make, TT prefetch, in-check reuse, LMR log table, -DNDEBUG. Same search (bench identical); +49% nps Xeon, +31% laptop (non-regression) | 4.0+0.04 | Solstice | Dragon | LLR: 3.01 (-2.94, 2.94) [-5.00, 0.00] Games: 820 W: 265 L: 134 D: 421 Ptnml(0-2): 4, 63, 165, 154, 24 |
staged move picker (lazy TT/captures/killers/quiets/bad captures); ~10% nps at equal ordering (non-regression) | 4.0+0.04 | Solstice | Dragon | LLR: 2.97 (-2.94, 2.94) [-5.00, 0.00] Games: 3036 W: 770 L: 657 D: 1609 Ptnml(0-2): 43, 327, 674, 422, 52 |