Less pruning in draw PV lines.
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Thu, 28 May 2020 20:34:43 +0000 (22:34 +0200)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 30 May 2020 18:32:52 +0000 (20:32 +0200)
no futility pruning for certain captures if the PvNode has a draw eval.

passed STC:
LLR: 2.94 (-2.94,2.94) {-0.50,1.50}
Total: 59392 W: 11576 L: 11302 D: 36514
Ptnml(0-2): 977, 6816, 13920, 6922, 1061
https://tests.stockfishchess.org/tests/view/5ed0b1bb042fa6d77c355295

passed LTC:
LLR: 2.94 (-2.94,2.94) {0.25,1.75}
Total: 64040 W: 8273 L: 7923 D: 47844
Ptnml(0-2): 424, 5842, 19220, 6028, 506
https://tests.stockfishchess.org/tests/view/5ed145e0042fa6d77c35531c

closes https://github.com/official-stockfish/Stockfish/pull/2705

Bench: 4704615

src/search.cpp

index 3b3c0f2aeb0deb9f84b19782468669054c943970..4747beb2e94b503f3df11d55fee058dae989757b 100644 (file)
@@ -1055,6 +1055,7 @@ moves_loop: // When in check, search starts from here
               // Futility pruning for captures
               if (   !givesCheck
                   && lmrDepth < 6
+                  && !(PvNode && abs(bestValue) < 2)
                   && !ss->inCheck
                   && ss->staticEval + 270 + 384 * lmrDepth + PieceValue[MG][type_of(pos.piece_on(to_sq(move)))] <= alpha)
                   continue;