From 5f096e9bef7dd2fa5506066f38a477944aa715cc Mon Sep 17 00:00:00 2001 From: VoyagerOne Date: Fri, 3 Jun 2016 10:21:12 -0400 Subject: [PATCH] Simplify Futility Pruning Don't update bestValue when futility pruning. STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 21933 W: 4031 L: 3912 D: 13990 LTC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 46225 W: 6115 L: 6028 D: 34082 Bench: 8450534 --- src/search.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index 5f0a0f3b..f0ee1b2b 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -606,7 +606,7 @@ namespace { Key posKey; Move ttMove, move, excludedMove, bestMove; Depth extension, newDepth, predictedDepth; - Value bestValue, value, ttValue, eval, nullValue, futilityValue; + Value bestValue, value, ttValue, eval, nullValue; bool ttHit, inCheck, givesCheck, singularExtensionNode, improving; bool captureOrPromotion, doFullDepthSearch; Piece moved_piece; @@ -971,16 +971,9 @@ moves_loop: // When in check search starts from here predictedDepth = std::max(newDepth - reduction(improving, depth, moveCount), DEPTH_ZERO); // Futility pruning: parent node - if (predictedDepth < 7 * ONE_PLY) - { - futilityValue = ss->staticEval + futility_margin(predictedDepth) + 256; - - if (futilityValue <= alpha) - { - bestValue = std::max(bestValue, futilityValue); - continue; - } - } + if ( predictedDepth < 7 * ONE_PLY + && ss->staticEval + futility_margin(predictedDepth) + 256 <= alpha) + continue; // Prune moves with negative SEE at low depths if (predictedDepth < 4 * ONE_PLY && pos.see_sign(move) < VALUE_ZERO) -- 2.39.2