X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=567f87660197e719cf83ab492191bd3d26945b30;hp=182d2d7f60493bc0069ec1bdc05ead0153609885;hb=07b5a28a68b4cc67f1447fce85fc910aa209b319;hpb=c33af32dada1be9f6aed851e8cf87599203e2eb2 diff --git a/src/search.cpp b/src/search.cpp index 182d2d7f..567f8766 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -543,7 +543,7 @@ namespace { Depth extension, newDepth; Value bestValue, value, ttValue, eval; bool ttHit, inCheck, givesCheck, singularExtensionNode, improving; - bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets, ttCapture; + bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets, ttCapture, pvExact; Piece movedPiece; int moveCount, quietCount; @@ -813,6 +813,7 @@ moves_loop: // When in check search starts from here && tte->depth() >= depth - 3 * ONE_PLY; skipQuiets = false; ttCapture = false; + pvExact = PvNode && ttHit && tte->bound() == BOUND_EXACT; // Step 11. Loop through moves // Loop through all pseudo-legal moves until no moves remain or a beta cutoff occurs @@ -957,6 +958,10 @@ moves_loop: // When in check search starts from here if ((ss-1)->moveCount > 15) r -= ONE_PLY; + // Decrease reduction for exact PV nodes + if (pvExact) + r -= ONE_PLY; + // Increase reduction if ttMove is a capture if (ttCapture) r += ONE_PLY;