diff options
Diffstat (limited to 'src/search.c')
| -rwxr-xr-x | src/search.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/search.c b/src/search.c index 807f69d..1b83891 100755 --- a/src/search.c +++ b/src/search.c @@ -664,7 +664,7 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx, // underflow (ULONG) in that case, which is exactly why the // uDepth >= ONE_PLY check below short-circuits before the // g_fCanSplit[] indexing ever evaluates it. - if (((uLegalMoves >= 3)) && + if (((uLegalMoves >= 2) && fIsLeftoverMove) && (0 != g_uNumHelpersAvailable) && (FALSE == pi->fMovesRescoredByIID) && (0 == uFutilityMargin) && @@ -750,6 +750,14 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx, // Decide how much (if any) to reduce this move's depth -- // graded LMR. + if ((uDepth > TWO_PLY) && + !pi->fPvNode && + !(ctx->sPlyInfo[ctx->uPly - 1].fPvNode) && + (uLegalMoves > 5) && + (0 == iExtend) && + (!IS_ESCAPING_CHECK(mv)) && + (!IS_CAPTURE_OR_PROMOTION(mv)) && + (!IS_CHECKING_MOVE(mv))) { INT iLMR = GetLMRReduction(iEval, iAlpha, |
