From b7b9d7c9c72a987bb497ec2b629d885a06238aa2 Mon Sep 17 00:00:00 2001 From: Aram Tumanian Date: Wed, 21 Dec 2016 13:40:55 +0200 Subject: [PATCH] Don't clear EasyMove in search() EasyMove is cleared after every iteration of the search if the 3rd move in the PV of the main thread changes from the previous iteration. Therefore, clearing EasyMove during a search iteration may be excessive. The tests show that this is indeed unnecessary. In the new version the EasyMove variable is used only in the Thread::search function. STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 47719 W: 8438 L: 8362 D: 30919 LTC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 122841 W: 15448 L: 15457 D: 91936 bench: 5468995 --- src/search.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 75d388b9..33870913 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1074,13 +1074,6 @@ moves_loop: // When in check search starts from here if (value > alpha) { - // If there is an easy move for this position, clear it if unstable - if ( PvNode - && thisThread == Threads.main() - && EasyMove.get(pos.key()) - && (move != EasyMove.get(pos.key()) || moveCount > 1)) - EasyMove.clear(); - bestMove = move; if (PvNode && !rootNode) // Update pv even in fail-high case -- 2.39.2