summaryrefslogtreecommitdiff
path: root/src/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/search.c')
-rwxr-xr-xsrc/search.c10
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,