]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Pawn flank attacks
[stockfish] / src / search.cpp
index a74e3f256833c576c4e11f19462367af32f91119..db94ed5dc7b9a0efaad54d83d8f17efe6f87202b 100644 (file)
@@ -573,9 +573,13 @@ namespace {
     if (thisThread->resetCalls.load(std::memory_order_relaxed))
     {
         thisThread->resetCalls = false;
-        thisThread->callsCnt = 0;
+        // At low node count increase the checking rate to about 0.1% of nodes
+        // otherwise use a default value.
+        thisThread->callsCnt = Limits.nodes ? std::min((int64_t)4096, Limits.nodes / 1024)
+                                            : 4096;
     }
-    if (++thisThread->callsCnt > 4096)
+
+    if (--thisThread->callsCnt <= 0)
     {
         for (Thread* th : Threads)
             th->resetCalls = true;
@@ -946,9 +950,10 @@ moves_loop: // When in check search starts from here
           }
           else if (depth < 7 * ONE_PLY && !extension)
           {
-              Value v = Value(-35 * depth / ONE_PLY * depth / ONE_PLY);
-              if (ss->staticEval != VALUE_NONE)
-                  v += ss->staticEval - alpha - 200;
+              Value v = -Value(399 + 35 * depth / ONE_PLY * depth / ONE_PLY);
+
+              if (PvNode)
+                  v += beta - alpha - 1;
 
               if (!pos.see_ge(move, v))
                   continue;
@@ -991,7 +996,6 @@ moves_loop: // When in check search starts from here
               // castling moves, because they are coded as "king captures rook" and
               // hence break make_move().
               else if (   type_of(move) == NORMAL
-                       && type_of(pos.piece_on(to_sq(move))) != PAWN
                        && !pos.see_ge(make_move(to_sq(move), from_sq(move)),  VALUE_ZERO))
                   r -= 2 * ONE_PLY;