From 95f3680080799d1a9e1b39ceec78a1eff789c6c2 Mon Sep 17 00:00:00 2001 From: FauziAkram Date: Sun, 19 Apr 2026 07:13:23 +0200 Subject: [PATCH] Replace constant LMR history divisor with depth-based array Passed STC: LLR: 2.97 (-2.94,2.94) <0.00,2.00> Total: 677344 W: 175301 L: 174041 D: 328002 Ptnml(0-2): 2018, 79669, 174166, 80673, 2146 https://tests.stockfishchess.org/tests/view/69cfae021668971c9da23b80 Passed LTC: LLR: 2.95 (-2.94,2.94) <0.50,2.50> Total: 46470 W: 11988 L: 11651 D: 22831 Ptnml(0-2): 37, 4877, 13055, 5244, 22 https://tests.stockfishchess.org/tests/view/69dcd13c3ca80bdf151d4ab5 Passed VLTC (non-reg.): LLR: 2.95 (-2.94,2.94) <-1.75,0.25> Total: 58986 W: 15120 L: 14947 D: 28919 Ptnml(0-2): 7, 5835, 17636, 6008, 7 https://tests.stockfishchess.org/tests/view/69debc6c5c67bee7d241ffe9 closes https://github.com/official-stockfish/Stockfish/pull/6741 Bench: 2723949 --- src/search.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index a949541cb..02ac998a6 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -52,6 +52,9 @@ namespace Stockfish { +static constexpr std::array lmrDivisor = {3307, 2930, 2874, 2818, 3215, 3225, 3224, 2782, + 2858, 2919, 3088, 3275, 3180, 2868, 3006, 3599}; + namespace TB = Tablebases; void syzygy_extend_pv(const OptionsMap& options, @@ -1097,6 +1100,7 @@ moves_loop: // When in check, search starts here } else if (!ss->followPV || !PvNode) { + int dIndex = std::clamp(int(depth), 1, int(lmrDivisor.size())) - 1; int history = (*contHist[0])[movedPiece][move.to_sq()] + (*contHist[1])[movedPiece][move.to_sq()] + sharedHistory.pawn_entry(pos)[movedPiece][move.to_sq()]; @@ -1108,7 +1112,7 @@ moves_loop: // When in check, search starts here history += 71 * mainHistory[us][move.raw()] / 32; // (*Scaler): Generally, lower divisors scales well - lmrDepth += history / 2995; + lmrDepth += history / lmrDivisor[dIndex]; Value futilityValue = ss->staticEval + 42 + 151 * !bestMove + 120 * lmrDepth + 86 * (ss->staticEval > alpha);