X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=082be4f25587a7ec4d0e329b14890ae3c9446bb2;hb=4e72e2a964754611de85536c13ae069f85839b85;hp=f9fdc261b16c9185520fa79d7a0d02e0eccdf2a6;hpb=6373fd56e90bc6114230a70cacad804248d955e2;p=stockfish
diff --git a/src/search.cpp b/src/search.cpp
index f9fdc261..082be4f2 100644
--- a/src/search.cpp
+++ b/src/search.cpp
@@ -18,6 +18,7 @@
along with this program. If not, see .
*/
+#include
#include
#include
#include // For std::memset
@@ -894,7 +895,7 @@ moves_loop: // When in check, search starts from here
&& move == ttMove
&& !rootNode
&& !excludedMove // Avoid recursive singular search
- /* && ttValue != VALUE_NONE Already implicit in the next condition */
+ /* && ttValue != VALUE_NONE Already implicit in the next condition */
&& abs(ttValue) < VALUE_KNOWN_WIN
&& (tte->bound() & BOUND_LOWER)
&& tte->depth() >= depth - 3 * ONE_PLY
@@ -927,6 +928,13 @@ moves_loop: // When in check, search starts from here
else if (type_of(move) == CASTLING)
extension = ONE_PLY;
+ // Shuffle extension
+ else if ( PvNode
+ && pos.rule50_count() > 18
+ && depth < 3 * ONE_PLY
+ && ss->ply < 3 * thisThread->rootDepth / ONE_PLY) // To avoid too deep searches
+ extension = ONE_PLY;
+
// Passed pawn extension
else if ( move == ss->killers[0]
&& pos.advanced_pawn_push(move)
@@ -1194,8 +1202,8 @@ moves_loop: // When in check, search starts from here
}
- // qsearch() is the quiescence search function, which is called by the main
- // search function with depth zero, or recursively with depth less than ONE_PLY.
+ // qsearch() is the quiescence search function, which is called by the main search
+ // function with zero depth, or recursively with further decreasing depth per call.
template
Value qsearch(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth) {