Skip to content

Commit ffedfa3

Browse files
joergosterzamar
authored andcommitted
Fix Singular extension condition to handle mate scores
With Eelco's patch "Don't special case for abs(beta) >= VALUE_MATE_IN_MAX_PLY" condition "abs(ttValue) < VALUE_KNOWN_WIN" has been removed from singular extension search, and condition "abs(beta) < VALUE_KNOWN_WIN" was added to the SingularExtensionNode definition. This might lead to problems, especially in positions, where a mate is due. For example, this position 5rk1/4K1pp/8/5PPP/8/8/8/1R6 w - - 12 1 triggers an assert. stockfish: search.cpp:434: Value {anonymous}::search(Position&, Search::Stack*, Value, Value, Depth, bool) [with {anonymous}::NodeType NT = (<unnamed>::NodeType)2u; bool SpNode = false]: Assertion `-VALUE_INFINITE <= alpha && alpha < beta && beta <= VALUE_INFINITE' failed. So let's re-insert the removed condition. First spotted by Uri Blass, fix by me. Bench: 8759675
1 parent e4e423b commit ffedfa3

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/search.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,8 @@ namespace {
700700
&& depth >= 8 * ONE_PLY
701701
&& abs(beta) < VALUE_KNOWN_WIN
702702
&& ttMove != MOVE_NONE
703-
&& ttValue != VALUE_NONE
703+
/* && ttValue != VALUE_NONE Already implicit in the next condition */
704+
&& abs(ttValue) < VALUE_KNOWN_WIN
704705
&& !excludedMove // Recursive singular search is not allowed
705706
&& (tte->bound() & BOUND_LOWER)
706707
&& tte->depth() >= depth - 3 * ONE_PLY;

0 commit comments

Comments
 (0)