X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=3152260745f21b8cf2ed8af1ab5051825dc581c2;hp=d385e3eb7c4a07a8094465245e7286328d46c7af;hb=91a27663084ea9be4918ba028aa2b151bc0f4e1c;hpb=b3108547deafc054e73965c954ed70aa909f6f06 diff --git a/src/search.cpp b/src/search.cpp index d385e3eb..31522607 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -209,10 +209,6 @@ namespace { // Minimum depth for use of singular extension const Depth SingularExtensionDepth[2] = { 8 * ONE_PLY /* non-PV */, 6 * ONE_PLY /* PV */}; - // If the TT move is at least SingularExtensionMargin better than the - // remaining ones we will extend it. - const Value SingularExtensionMargin = Value(0x20); - // Step 12. Futility pruning // Futility margin for quiescence search @@ -1055,7 +1051,7 @@ split_point_start: // At split points actual search starts from here if (abs(ttValue) < VALUE_KNOWN_WIN) { - Value b = ttValue - SingularExtensionMargin; + Value b = ttValue - depth; ss->excludedMove = move; ss->skipNullMove = true; Value v = search(pos, ss, b - 1, b, depth / 2, ply); @@ -1431,6 +1427,13 @@ split_point_start: // At split points actual search starts from here bestValue = futilityValue; continue; } + + // Prune moves with negative or equal SEE + if ( futilityBase < beta + && depth < DEPTH_ZERO + && bestValue > value_mated_in(PLY_MAX) + && pos.see(move) <= 0) + continue; } // Detect non-capture evasions that are candidate to be pruned