]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Remove useless mate value special handling in null search
[stockfish] / src / search.cpp
index 75b6bd0caefd42ebf5f4c2c7bced970b88d66074..252b4299239e5e039e3bb90a4ba04ed0cef5b49d 100644 (file)
@@ -1249,14 +1249,7 @@ namespace {
 
         pos.undo_null_move();
 
-        if (value_is_mate(nullValue))
-        {
-            if (nullValue == value_mated_in(ply + 2))
-                mateThreat = true;
-
-            /* Do not return unproven mates */
-        }
-        else if (nullValue >= beta)
+        if (nullValue >= beta)
         {
             if (depth < 6 * OnePly)
                 return beta;
@@ -1272,6 +1265,9 @@ namespace {
             // move which was reduced. If a connection is found, return a fail
             // low score (which will cause the reduced move to fail high in the
             // parent node, which will trigger a re-search with full depth).
+            if (nullValue == value_mated_in(ply + 2))
+                mateThreat = true;
+
             ss[ply].threatMove = ss[ply + 1].currentMove;
             if (   depth < ThreatDepth
                 && ss[ply - 1].reduction
@@ -2202,16 +2198,19 @@ namespace {
     assert(m != MOVE_NONE);
 
     Depth result = Depth(0);
-    *dangerous = check || singleReply || mateThreat;
+    *dangerous = check | singleReply | mateThreat;
 
-    if (check)
-        result += CheckExtension[pvNode];
+    if (*dangerous)
+    {
+        if (check)
+            result += CheckExtension[pvNode];
 
-    if (singleReply)
-        result += SingleReplyExtension[pvNode];
+        if (singleReply)
+            result += SingleReplyExtension[pvNode];
 
-    if (mateThreat)
-        result += MateThreatExtension[pvNode];
+        if (mateThreat)
+            result += MateThreatExtension[pvNode];
+    }
 
     if (pos.type_of_piece_on(move_from(m)) == PAWN)
     {