From 3fafc9768ae47d0d5e963ade37a18b5a1d2a3b1f Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 22 Dec 2008 11:44:00 +0100 Subject: [PATCH] Set the 'Problem' variable only at ply == 1 Bug fix merged from Glaurung 2.2 for search_pv() Added the same fix also to sp_search_pv() where was missing. Signed-off-by: Marco Costalba --- src/search.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index d61c5939..426f84d9 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1073,7 +1073,9 @@ namespace { // If we are at ply 1, and we are searching the first root move at // ply 0, set the 'Problem' variable if the score has dropped a lot // (from the computer's point of view) since the previous iteration: - if (Iteration >= 2 && -value <= ValueByIteration[Iteration-1] - ProblemMargin) + if ( ply == 1 + && Iteration >= 2 + && -value <= ValueByIteration[Iteration-1] - ProblemMargin) Problem = true; } @@ -1775,8 +1777,10 @@ namespace { } // If we are at ply 1, and we are searching the first root move at // ply 0, set the 'Problem' variable if the score has dropped a lot - // (from the computer's point of view) since the previous iteration: - if (Iteration >= 2 && -value <= ValueByIteration[Iteration-1] - ProblemMargin) + // (from the computer's point of view) since the previous iteration. + if ( sp->ply == 1 + && Iteration >= 2 + && -value <= ValueByIteration[Iteration-1] - ProblemMargin) Problem = true; } lock_release(&(sp->lock)); @@ -1785,7 +1789,7 @@ namespace { lock_grab(&(sp->lock)); // If this is the master thread and we have been asked to stop because of - // a beta cutoff higher up in the tree, stop all slave threads: + // a beta cutoff higher up in the tree, stop all slave threads. if (sp->master == threadID && thread_should_stop(threadID)) for (int i = 0; i < ActiveThreads; i++) if (sp->slaves[i]) -- 2.39.2