From 69067e1988ea945977d586a1442a22be0b55671a Mon Sep 17 00:00:00 2001 From: protonspring Date: Thu, 8 Feb 2018 10:45:45 +0100 Subject: [PATCH] Obey skipQuiets strictly in MovePicker MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The current logic in master is to continue return quiet moves if their history score is above 0. It appears as though this check can be removed, which is also more logically consistent with the “skipQuiets” semantics used in search.cpp. This patch may open new opportunitiesto get Elo by changing or tuning the definition of 'moveCountPruning' in line 830 of search.cpp, because obeying skipQuiets without checking the history scores makes the search more sensitive to 'moveCountPruning'. STC LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 34780 W: 7680 L: 7584 D: 19516 http://tests.stockfishchess.org/tests/view/5a79f8d80ebc5902971a99db LTC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 38757 W: 6732 L: 6641 D: 25384 http://tests.stockfishchess.org/tests/view/5a7afebe0ebc5902971a9a46 Bench 4954595 --- src/movepick.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/movepick.cpp b/src/movepick.cpp index 74da3205..b4cae3a0 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -221,17 +221,17 @@ Move MovePicker::next_move(bool skipQuiets) { /* fallthrough */ case QUIET: - while ( cur < endMoves - && (!skipQuiets || cur->value >= VALUE_ZERO)) - { - move = *cur++; - - if ( move != ttMove - && move != killers[0] - && move != killers[1] - && move != countermove) - return move; - } + if (!skipQuiets) + while (cur < endMoves) + { + move = *cur++; + + if ( move != ttMove + && move != killers[0] + && move != killers[1] + && move != countermove) + return move; + } ++stage; cur = moves; // Point to beginning of bad captures /* fallthrough */ -- 2.39.2