X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=bcd53f9eefe33194788faac0e8f3b5284e6d3b94;hb=d777ea79fff0f651bd948c881946cd06bebd9381;hp=99c2b09f9ef42b4032c95864e7f4e0e497147ec5;hpb=c0ff241464338f7e5bb815b4f72c2a95d12244a0;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index 99c2b09f..bcd53f9e 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1006,6 +1006,13 @@ moves_loop: // When in check, search starts from here value = bestValue; singularQuietLMR = moveCountPruning = false; + // Indicate PvNodes that will probably fail low if the node was searched + // at a depth equal or greater than the current depth, and the result of this search was a fail low. + bool likelyFailLow = PvNode + && ttMove + && (tte->bound() & BOUND_UPPER) + && tte->depth() >= depth; + // Mark this node as being searched ThreadHolding th(thisThread, posKey, ss->ply); @@ -1044,14 +1051,6 @@ moves_loop: // When in check, search starts from here movedPiece = pos.moved_piece(move); givesCheck = pos.gives_check(move); - // Indicate PvNodes that will probably fail low if node was searched with non-PV search - // at depth equal or greater to current depth and result of this search was far below alpha - bool likelyFailLow = PvNode - && ttMove - && (tte->bound() & BOUND_UPPER) - && ttValue < alpha + 200 + 100 * depth - && tte->depth() >= depth; - // Calculate new depth for this move newDepth = depth - 1; @@ -1130,6 +1129,8 @@ moves_loop: // When in check, search starts from here { extension = 1; singularQuietLMR = !ttCapture; + if (!PvNode && value < singularBeta - 140) + extension = 2; } // Multi-cut pruning @@ -1153,11 +1154,6 @@ moves_loop: // When in check, search starts from here } } - // Check extension (~2 Elo) - else if ( givesCheck - && (pos.is_discovered_check_on_king(~us, move) || pos.see_ge(move))) - extension = 1; - // Add extension to new depth newDepth += extension;