Tweak move count pruning for atomic
authorFabian Fichter <ianfab@users.noreply.github.com>
Tue, 9 Feb 2021 20:52:19 +0000 (21:52 +0100)
committerFabian Fichter <ianfab@users.noreply.github.com>
Tue, 9 Feb 2021 20:52:19 +0000 (21:52 +0100)
atomic STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2093 W: 793 L: 686 D: 614
http://www.variantfishtest.org:6543/tests/view/601c78c06e23db669974e7c5

atomic LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 4343 W: 1478 L: 1347 D: 1518
http://www.variantfishtest.org:6543/tests/view/601d0bc96e23db669974e7ee

atomic VLTC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 1722 W: 594 L: 497 D: 631
http://www.variantfishtest.org:6543/tests/view/601e71686e23db669974e813

src/search.cpp

index 6164a1c..55b093c 100644 (file)
@@ -77,8 +77,8 @@ namespace {
     return (r + 503) / 1024 + (!i && r > 915);
   }
 
-  constexpr int futility_move_count(bool improving, Depth depth) {
-    return (3 + depth * depth) / (2 - improving);
+  int futility_move_count(bool improving, Depth depth, const Position& pos) {
+    return (3 + depth * depth + 2 * pos.blast_on_capture()) / (2 - improving + pos.blast_on_capture());
   }
 
   // History and stats update bonus, based on depth
@@ -1114,7 +1114,7 @@ moves_loop: // When in check, search starts from here
           && bestValue > VALUE_TB_LOSS_IN_MAX_PLY)
       {
           // Skip quiet moves if movecount exceeds our FutilityMoveCount threshold
-          moveCountPruning = moveCount >= futility_move_count(improving, depth);
+          moveCountPruning = moveCount >= futility_move_count(improving, depth, pos);
 
           // Reduced depth of the next LMR search
           int lmrDepth = std::max(newDepth - reduction(improving, depth, moveCount), 0);