From af181d9fe11216a296113292f772561cfd9823d3 Mon Sep 17 00:00:00 2001 From: Michael Chaly Date: Sun, 24 Aug 2025 12:47:00 +0300 Subject: [PATCH] Small simplification in probCut movepicker Remove no longer required condition for tt moves. The idea is that if tt the value is greater than probCut beta try tt move that is a capture anyway - even if it doesn't pass SEE check. This idea in various implementations passed some STCs and was looking decent at LTCs as a gainer. Passed STC: https://tests.stockfishchess.org/tests/view/68aa1ee075da51a345a5a805 LLR: 2.93 (-2.94,2.94) <-1.75,0.25> Total: 136160 W: 35189 L: 35079 D: 65892 Ptnml(0-2): 436, 16083, 34891, 16275, 395 Passed LTC: https://tests.stockfishchess.org/tests/view/68aa91d375da51a345a5a884 LLR: 2.94 (-2.94,2.94) <-1.75,0.25> Total: 80022 W: 20652 L: 20492 D: 38878 Ptnml(0-2): 33, 8717, 22357, 8865, 39 closes https://github.com/official-stockfish/Stockfish/pull/6259 Bench: 2307940 --- src/movepick.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/movepick.cpp b/src/movepick.cpp index fa447e189..4b01beb67 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -115,8 +115,7 @@ MovePicker::MovePicker(const Position& p, Move ttm, int th, const CapturePieceTo threshold(th) { assert(!pos.checkers()); - stage = PROBCUT_TT - + !(ttm && pos.capture_stage(ttm) && pos.pseudo_legal(ttm) && pos.see_ge(ttm, threshold)); + stage = PROBCUT_TT + !(ttm && pos.capture_stage(ttm) && pos.pseudo_legal(ttm)); } // Assigns a numerical value to each move in a list, used for sorting.