X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=a81c85273aa4e6325e103dcd1d7ec1afc2636054;hp=59b1b1f19a84f19dccb8c58b288d53c6944ace9c;hb=f2f3a06a1acfa14b3054bfd73d6c3966c326a7cc;hpb=76971d8acba4af1896cf94e1278f69ae2084d45d diff --git a/src/search.cpp b/src/search.cpp index 59b1b1f1..a81c8527 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -729,7 +729,6 @@ namespace { // Step 8. Null move search with verification search (is omitted in PV nodes) if ( !PvNode - && depth >= 2 * ONE_PLY && eval >= beta && (ss->staticEval >= beta - 35 * (depth / ONE_PLY - 6) || depth >= 13 * ONE_PLY) && pos.non_pawn_material(pos.side_to_move())) @@ -930,9 +929,16 @@ moves_loop: // When in check search starts from here && 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) - continue; + // Prune moves with negative SEE at low depths and below a decreasing + // threshold at higher depths. + if (predictedDepth < 8 * ONE_PLY) + { + Value see_v = predictedDepth < 4 * ONE_PLY ? VALUE_ZERO + : -PawnValueMg * 2 * int(predictedDepth - 3 * ONE_PLY); + + if (pos.see_sign(move) < see_v) + continue; + } } // Speculative prefetch as early as possible