diff --git a/src/search.cpp b/src/search.cpp index a140e09d1..d4085e3d3 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -900,7 +900,7 @@ Value Search::Worker::search( // If we have a good enough capture (or queen promotion) and a reduced search // returns a value much above beta, we can (almost) safely prune the previous move. probCutBeta = beta + 187 - 56 * improving; - if (!PvNode && depth > 3 + if (depth > 3 && !is_decisive(beta) // If value from transposition table is lower than probCutBeta, don't attempt // probCut there and in further interactions with transposition table cutoff @@ -959,7 +959,9 @@ Value Search::Worker::search( Distributed::save(tt, threads, thisThread, ttWriter, posKey, value_to_tt(value, ss->ply), ss->ttPv, BOUND_LOWER, depth - 3, move, unadjustedStaticEval, tt.generation()); - return is_decisive(value) ? value : value - (probCutBeta - beta); + + if (!is_decisive(value)) + return value - (probCutBeta - beta); } } }