X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=a81c85273aa4e6325e103dcd1d7ec1afc2636054;hp=b735281729e78387359866d60d36f20d936e6165;hb=f2f3a06a1acfa14b3054bfd73d6c3966c326a7cc;hpb=82d02a3133dd04c86010d7c93e3bc64252ea65a9 diff --git a/src/search.cpp b/src/search.cpp index b7352817..a81c8527 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -729,9 +729,8 @@ 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 || depth >= 12 * ONE_PLY) + && (ss->staticEval >= beta - 35 * (depth / ONE_PLY - 6) || depth >= 13 * ONE_PLY) && pos.non_pawn_material(pos.side_to_move())) { ss->currentMove = MOVE_NULL; @@ -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