official-stockfish/Stockfish — pull request #43 by lucasart (2014-09-02 10:50:38+00:00)
Title: Prune PV nodes in qsearch()

Prune PV nodes in qsearch() just like non PV nodes: futility pruning and see pruning.

Consequently, we can detempletize the qsearch. Speed measurements show no difference now, because PvNode is barely used.

Getting rid of a template parameter, only to replace it by a function parameter is not the point, of course. We can do better than that, by defining

PvNode = alpha < beta-1

Strictly speaking this is a bugfix in itself, as it corrects the problem of fake PV nodes (those contractual PV nodes that verify alpha = beta-1 and where SF would be using BOUND_EXACT erroneously amongst other things). But such nodes are so rare that we don't care.

STC:

LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 27555 W: 5832 L: 5722 D: 16001

LTC:

LLR: 6.55 (-2.94,2.94) [-3.00,1.00]
Total: 107424 W: 19010 L: 18844 D: 69570

bench 8236865