Less early pruning for nCheck variants
authorFabian Fichter <ianfab@users.noreply.github.com>
Sun, 2 Sep 2018 14:55:12 +0000 (16:55 +0200)
committerFabian Fichter <ianfab@users.noreply.github.com>
Sun, 16 Sep 2018 12:10:15 +0000 (14:10 +0200)
STC 3check
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 4562 W: 2177 L: 2017 D: 368
http://35.161.250.236:6543/tests/view/5b8bfa486e23db0fbab0dd37

src/search.cpp

index d984956..dd15427 100644 (file)
@@ -723,6 +723,7 @@ namespace {
     // Step 7. Razoring (~2 Elo)
     if (  !PvNode
         && depth < 3 * ONE_PLY
+        && !pos.max_check_count()
         && eval <= alpha - RazorMargin[depth / ONE_PLY])
     {
         Value ralpha = alpha - (depth >= 2 * ONE_PLY) * RazorMargin[depth / ONE_PLY];
@@ -741,7 +742,7 @@ namespace {
     // Step 8. Futility pruning: child node (~30 Elo)
     if (   !rootNode
         &&  depth < 7 * ONE_PLY
-        &&  eval - futility_margin(depth, improving) >= beta
+        &&  eval - futility_margin(depth, improving) * (1 + !!pos.max_check_count()) >= beta
         &&  eval < VALUE_KNOWN_WIN) // Do not return unproven wins
         return eval;