X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=933cab87b447fae890a417e3f821f90eb738c462;hp=519782f8471349ec765a3f6682db054482525601;hb=691a287bfe7a2afbfa1d2b3129f4a089b188b6e4;hpb=d07e782e22ca2ed0ec748ac38c33673baec28cc5 diff --git a/src/search.cpp b/src/search.cpp index 519782f8..933cab87 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -503,10 +503,7 @@ void Thread::search() { fallingEval = std::max(0.5, std::min(1.5, fallingEval)); // If the bestMove is stable over several iterations, reduce time accordingly - timeReduction = 1.0; - for (int i : {3, 4, 5}) - if (lastBestMoveDepth * i < completedDepth) - timeReduction *= 1.25; + timeReduction = lastBestMoveDepth + 10 * ONE_PLY < completedDepth ? 1.95 : 1.0; // Use part of the gained time from a previous stable move for the current move double bestMoveInstability = 1.0 + mainThread->bestMoveChanges; @@ -578,7 +575,7 @@ namespace { Depth extension, newDepth; Value bestValue, value, ttValue, eval, maxValue, pureStaticEval; bool ttHit, pvHit, inCheck, givesCheck, improving; - bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets, ttCapture, pvExact; + bool captureOrPromotion, doFullDepthSearch, moveCountPruning, skipQuiets, ttCapture; Piece movedPiece; int moveCount, captureCount, quietCount; @@ -677,7 +674,7 @@ namespace { return ttValue; } - if ( depth > 6 * ONE_PLY + if ( depth > 4 * ONE_PLY && !excludedMove && PvNode) pvHit = true; @@ -898,7 +895,6 @@ moves_loop: // When in check, search starts from here skipQuiets = false; ttCapture = ttMove && pos.capture_or_promotion(ttMove); - pvExact = PvNode && ttHit && tte->bound() == BOUND_EXACT; // Step 12. Loop through all pseudo-legal moves until no moves remain // or a beta cutoff occurs. @@ -1043,7 +1039,7 @@ moves_loop: // When in check, search starts from here Depth r = reduction(improving, depth, moveCount); // Decrease reduction if position is or has been on the PV - if (pvHit && !PvNode) + if (pvHit) r -= ONE_PLY; // Decrease reduction if opponent's move count is high (~10 Elo) @@ -1052,10 +1048,6 @@ moves_loop: // When in check, search starts from here if (!captureOrPromotion) { - // Decrease reduction for exact PV nodes (~0 Elo) - if (pvExact) - r -= ONE_PLY; - // Increase reduction if ttMove is a capture (~0 Elo) if (ttCapture) r += ONE_PLY;