Extend checks more when below alpha
authorMarco Costalba <mcostalba@gmail.com>
Wed, 11 Sep 2013 07:22:57 +0000 (09:22 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Wed, 11 Sep 2013 17:15:28 +0000 (19:15 +0200)
Passed both short TC:
LLR: 2.97 (-2.94,2.94) [-1.50,4.50]
Total: 8739 W: 1830 L: 1698 D: 5211

And long TC:
LLR: 2.96 (-2.94,2.94) [0.00,6.00]
Total: 6716 W: 1238 L: 1101 D: 4377

bench: 4554576

src/search.cpp

index f64f55f0a129a4b4292891140ebd9eb1ad818af5..4384b58dd5c89a21ab10d40ccb0de6c88525fc82 100644 (file)
@@ -837,7 +837,7 @@ moves_loop: // When in check and at SpNode search starts from here
           ext = ONE_PLY;
 
       else if (givesCheck && pos.see_sign(move) >= 0)
           ext = ONE_PLY;
 
       else if (givesCheck && pos.see_sign(move) >= 0)
-          ext = inCheck || ss->staticEval < VALUE_ZERO ? ONE_PLY : ONE_PLY / 2;
+          ext = inCheck || ss->staticEval <= alpha ? ONE_PLY : ONE_PLY / 2;
 
       // Singular extension search. If all moves but one fail low on a search of
       // (alpha-s, beta-s), and just one fails high on (alpha, beta), then that move
 
       // Singular extension search. If all moves but one fail low on a search of
       // (alpha-s, beta-s), and just one fails high on (alpha, beta), then that move