1
0
Fork 0

Singular extension and check extension tweak

If singular extension fails to trigger extension then don't consider check extension.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 69428 W: 12663 L: 12271 D: 44494

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 44023 W: 5875 L: 5612 D: 32536

Bench: 6170444

Closes #1043
pull/1037/merge
VoyagerOne 2017-03-25 10:10:33 -07:00 committed by Joona Kiiski
parent 352bd6f5aa
commit 30c583204f
1 changed files with 5 additions and 7 deletions

View File

@ -868,12 +868,7 @@ moves_loop: // When in check search starts from here
moveCountPruning = depth < 16 * ONE_PLY
&& moveCount >= FutilityMoveCounts[improving][depth / ONE_PLY];
// Step 12. Extensions
// Extend checks
if ( givesCheck
&& !moveCountPruning
&& pos.see_ge(move, VALUE_ZERO))
extension = ONE_PLY;
// Step 12. Singular and Gives Check Extensions
// 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
@ -882,7 +877,6 @@ moves_loop: // When in check search starts from here
// ttValue minus a margin then we extend the ttMove.
if ( singularExtensionNode
&& move == ttMove
&& !extension
&& pos.legal(move))
{
Value rBeta = std::max(ttValue - 2 * depth / ONE_PLY, -VALUE_MATE);
@ -894,6 +888,10 @@ moves_loop: // When in check search starts from here
if (value < rBeta)
extension = ONE_PLY;
}
else if ( givesCheck
&& !moveCountPruning
&& pos.see_ge(move, VALUE_ZERO))
extension = ONE_PLY;
// Calculate new depth for this move
newDepth = depth - ONE_PLY + extension;