Fix zugzwang pruning issues
authorjoergoster <osterj165@googlemail.com>
Sat, 8 Apr 2017 00:07:40 +0000 (17:07 -0700)
committerJoona Kiiski <joona@zoox.com>
Sat, 8 Apr 2017 00:15:00 +0000 (17:15 -0700)
commit72a501c6fe5e4e7b61291e9603d0c6cc0902e618
tree5dd55debafcf954af04db38950d01063dff42e37
parent35b77b120ef5ca5d9db848e02e42642b1a93e982
Fix zugzwang pruning issues

By adding pos.non_pawn_material(pos.side_to_move()) as a precondition in step 13,
which is already in use in Futility Pruning (child node) and Null Move Pruning for similar reasons.

Pawn endgames, especially those with only 1 or 2 pawns, are simply heavily influenced by zugzwang situations.

Since we are using a bitbase for KPK endgames, I see no reason to accept buggy evals as shown in #760

Patch looks neutral at STC
LLR: 2.32 (-2.94,2.94) [-3.00,1.00]
Total: 79580 W: 10789 L: 10780 D: 58011

and LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 27071 W: 3502 L: 3390 D: 20179

Bench: 6259071

Closes #1051
Closes #760
src/search.cpp