This modifies the in-search TB probing to continue searching for a mate "behind"...
authorsyzygy1 <3028851+syzygy1@users.noreply.github.com>
Sun, 28 Jan 2018 13:40:07 +0000 (14:40 +0100)
committerMarco Costalba <mcostalba@users.noreply.github.com>
Sun, 28 Jan 2018 13:40:07 +0000 (14:40 +0100)
commitfd4d800c9842ee5b6bf99fa6d06707e678eb14fe
tree4fc49896230dd6e40284d024949afc10f50b8e2c
parenta5a98d822e7a3f389fac5d98b34c3dc591d06be6
This modifies the in-search TB probing to continue searching for a mate "behind" a TB win (or loss). (#1285)

It does the following:

- If a TB win or loss value allows an alpha or beta cutoff, the cutoff is taken.
- Otherwise, the search of the current subtree continues. In PV nodes, the final value returned is adjusted to reflect that the position is a TB win (or loss).

The patch also fixes a potential problem caused by root_probe() and root_probe_wdl() dirtying the root-move scores.

This patch removes the limitation of current master that a mate is never found if the root position is not yet in the TBs, but the path to mate at some point enters the TBs. The patch is intended to preserve the efficiency and effectiveness of the current TB probing approach.

No functional change (withouth TB)
src/search.cpp