1
0
Fork 0

Simplify Pv nodes related logic in LMR

Instead of having 2 separate conditions for Pv nodes reductions we can actually write them together. Despite it's not being strictly logically the same bench actually doesn't change up to depth 20, so them interacting is really rare and thus it's just a removal of extra PvNode check most of the time.

passed STC:
https://tests.stockfishchess.org/tests/view/618ce27cd7a085ad008ef4e9
LLR: 2.94 (-2.94,2.94) <-2.25,0.25>
Total: 37488 W: 9424 L: 9279 D: 18785
Ptnml(0-2): 90, 3903, 10634, 4006, 111

passed LTC:
https://tests.stockfishchess.org/tests/view/618d2585d7a085ad008ef527
LLR: 2.95 (-2.94,2.94) <-2.25,0.25>
Total: 49968 W: 12449 L: 12331 D: 25188
Ptnml(0-2): 27, 4745, 15309, 4889, 14

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

Bench: 6339548
master
Michael Chaly 2021-11-14 21:35:00 +03:00 committed by Joost VandeVondele
parent 9048ac00db
commit f5df517145
1 changed files with 3 additions and 6 deletions

View File

@ -1164,15 +1164,12 @@ moves_loop: // When in check, search starts here
{
Depth r = reduction(improving, depth, moveCount, rangeReduction > 2);
// Decrease reduction if on the PV (~2 Elo)
// Decrease reduction at some PvNodes (~2 Elo)
if ( PvNode
&& bestMoveCount <= 3)
&& bestMoveCount <= 3
&& beta - alpha >= thisThread->rootDelta / 4)
r--;
// Increases reduction for PvNodes that have small window
if (PvNode && beta - alpha < thisThread->rootDelta / 4)
r++;
// Decrease reduction if position is or has been on the PV
// and node is not likely to fail low. (~3 Elo)
if ( ss->ttPv