Correctly prevent recursive verification in nmp.
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Thu, 24 May 2018 16:26:21 +0000 (18:26 +0200)
committerStéphane Nicolet <cassio@free.fr>
Thu, 24 May 2018 16:26:34 +0000 (18:26 +0200)
commitbeaadd65474c7cf09b13b8cbeeca769e2737f049
tree839a80a0e0d1d22d9da4e02ef13baf9fe8619ab6
parentd7022031130ef84b801e087c1804d0cf05bc369b
Correctly prevent recursive verification in nmp.

As discussed with @pb00068, the condition to prevent recursive verification
was not completely correct. This patch corrects that condition, and adds an
assert. In the current implementation, recursive verification needs to be
avoided in order not to break the verification of the move closer to the
root (i.e. to not set thisThread->nmp_min_ply to zero prematurely).

This patch is tested as a bug fix, based on and tested against PR #1609 .

passed STC:
http://tests.stockfishchess.org/tests/view/5b050f170ebc5914abc129c5
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 7875 W: 1669 L: 1523 D: 4683

passed LTC:
http://tests.stockfishchess.org/tests/view/5b0513970ebc5914abc129cd
LLR: 3.00 (-2.94,2.94) [-3.00,1.00]
Total: 24048 W: 3525 L: 3407 D: 17116

Bench changes at high depth.

Closes https://github.com/official-stockfish/Stockfish/pull/1610
and    https://github.com/official-stockfish/Stockfish/pull/1609

Bench: 4484288
src/search.cpp