]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
LMR for captures not cracking alpha
[stockfish] / src / search.cpp
index 082be4f25587a7ec4d0e329b14890ae3c9446bb2..bafc374ba29993ab05b62c8ec95729990a7fbbb8 100644 (file)
@@ -594,7 +594,10 @@ namespace {
     // starts with statScore = 0. Later grandchildren start with the last calculated
     // statScore of the previous grandchild. This influences the reduction rules in
     // LMR which are based on the statScore of parent position.
-    (ss+2)->statScore = 0;
+       if (rootNode)
+               (ss + 4)->statScore = 0;
+       else
+               (ss + 2)->statScore = 0;
 
     // Step 4. Transposition table lookup. We don't want the score of a partial
     // search to overwrite a previous full search TT value, so we use a different
@@ -1005,7 +1008,9 @@ moves_loop: // When in check, search starts from here
       // re-searched at full depth.
       if (    depth >= 3 * ONE_PLY
           &&  moveCount > 1
-          && (!captureOrPromotion || moveCountPruning))
+          && (  !captureOrPromotion
+              || moveCountPruning
+              || ss->staticEval + PieceValue[EG][pos.captured_piece()] <= alpha))
       {
           Depth r = reduction<PvNode>(improving, depth, moveCount);