X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fsearch.cpp;h=bafc374ba29993ab05b62c8ec95729990a7fbbb8;hb=b6d11028bbb5e428cdbd709ba46d8b14bab17c88;hp=082be4f25587a7ec4d0e329b14890ae3c9446bb2;hpb=4e72e2a964754611de85536c13ae069f85839b85;p=stockfish diff --git a/src/search.cpp b/src/search.cpp index 082be4f2..bafc374b 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -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(improving, depth, moveCount);