]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Revert "Retire null search verification"
[stockfish] / src / search.cpp
index 097faf90f7c2fc4d15f5845335c306fa792ae99f..7188925c0e73c2f3e2fae8d5e2c1b77e5dea2374 100644 (file)
@@ -640,8 +640,24 @@ namespace {
         (ss+1)->skipNullMove = false;
         pos.undo_null_move();
 
-        if (nullValue >= beta) // Do not return unproven mate scores
-            return nullValue >= VALUE_MATE_IN_MAX_PLY ? beta : nullValue;
+        if (nullValue >= beta)
+        {
+            // Do not return unproven mate scores
+            if (nullValue >= VALUE_MATE_IN_MAX_PLY)
+                nullValue = beta;
+
+            if (depth < 12 * ONE_PLY)
+                return nullValue;
+
+            // Do verification search at high depths
+            ss->skipNullMove = true;
+            Value v = depth-R < ONE_PLY ? qsearch<NonPV, false>(pos, ss, beta-1, beta, DEPTH_ZERO)
+                                        :  search<NonPV>(pos, ss, beta-1, beta, depth-R, false);
+            ss->skipNullMove = false;
+
+            if (v >= beta)
+                return nullValue;
+        }
     }
 
     // Step 9. ProbCut (skipped when in check)