From: VoyagerOne Date: Sat, 25 Mar 2017 17:10:33 +0000 (-0700) Subject: Singular extension and check extension tweak X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=30c583204f97da2c67b5042c30327013e70ae209 Singular extension and check extension tweak If singular extension fails to trigger extension then don't consider check extension. STC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 69428 W: 12663 L: 12271 D: 44494 LTC: LLR: 2.96 (-2.94,2.94) [0.00,4.00] Total: 44023 W: 5875 L: 5612 D: 32536 Bench: 6170444 Closes #1043 --- diff --git a/src/search.cpp b/src/search.cpp index f07085ed..7029ae03 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -868,12 +868,7 @@ moves_loop: // When in check search starts from here moveCountPruning = depth < 16 * ONE_PLY && moveCount >= FutilityMoveCounts[improving][depth / ONE_PLY]; - // Step 12. Extensions - // Extend checks - if ( givesCheck - && !moveCountPruning - && pos.see_ge(move, VALUE_ZERO)) - extension = ONE_PLY; + // Step 12. Singular and Gives Check Extensions // Singular extension search. If all moves but one fail low on a search of // (alpha-s, beta-s), and just one fails high on (alpha, beta), then that move @@ -882,7 +877,6 @@ moves_loop: // When in check search starts from here // ttValue minus a margin then we extend the ttMove. if ( singularExtensionNode && move == ttMove - && !extension && pos.legal(move)) { Value rBeta = std::max(ttValue - 2 * depth / ONE_PLY, -VALUE_MATE); @@ -894,6 +888,10 @@ moves_loop: // When in check search starts from here if (value < rBeta) extension = ONE_PLY; } + else if ( givesCheck + && !moveCountPruning + && pos.see_ge(move, VALUE_ZERO)) + extension = ONE_PLY; // Calculate new depth for this move newDepth = depth - ONE_PLY + extension;