summaryrefslogtreecommitdiff
path: root/src/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/search.c')
-rwxr-xr-xsrc/search.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/search.c b/src/search.c
index 3879d9f..4a153aa 100755
--- a/src/search.c
+++ b/src/search.c
@@ -165,7 +165,7 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
MOVE mvLast = (pi-1)->mv;
SCORE iBestScore = -INFINITY;
SCORE iInitialAlpha;
- SCORE iRoughEval;
+ SCORE iEval;
MOVE mv, mvBest, mvHash;
ULONG x = 0;
SCORE iScore;
@@ -337,19 +337,21 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
}
// Maybe do nullmove pruning
- pi->iEval = iRoughEval = GetRoughEvalScore(ctx, iAlpha, iBeta, FALSE);
+ pi->iEval = iEval = GetRoughEvalScore(ctx, iAlpha, iBeta, FALSE);
SCORE iImprovement = 0;
if (ctx->uPly > 1)
{
- iImprovement = (iRoughEval - ctx->sPlyInfo[ctx->uPly - 2].iEval);
+ iImprovement = (iEval - ctx->sPlyInfo[ctx->uPly - 2].iEval);
}
+
+
GENERATE_NO_MOVES;
if (!fSkipNull &&
!fThreat &&
WeShouldTryNullmovePruning(ctx,
iAlpha,
iBeta,
- iRoughEval,
+ iEval,
iImprovement,
uNextDepth))
{
@@ -525,16 +527,16 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
{
ASSERT(uDepth >= THREE_QUARTERS_PLY);
if ((uDepth <= ONE_PLY + THREE_QUARTERS_PLY) &&
- (iRoughEval + VALUE_KNIGHT <= iAlpha))
+ (iEval + VALUE_KNIGHT + iImprovement <= iAlpha))
{
- uFutilityMargin = (iAlpha - iRoughEval) / 2;
+ uFutilityMargin = (iAlpha - iEval) / 2;
ASSERT(uFutilityMargin);
}
else if ((uDepth > ONE_PLY + THREE_QUARTERS_PLY) &&
(uDepth <= TWO_PLY + THREE_QUARTERS_PLY) &&
- (iRoughEval + VALUE_ROOK <= iAlpha))
+ (iEval + VALUE_ROOK + iImprovement <= iAlpha))
{
- uFutilityMargin = (iAlpha - iRoughEval) / 2;
+ uFutilityMargin = (iAlpha - iEval) / 2;
ASSERT(uFutilityMargin);
}
}
@@ -649,6 +651,7 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
iScore = StartParallelSearch(ctx,
&iAlpha,
iBeta,
+ iImprovement,
&iBestScore,
&mvBest,
(x - 1),
@@ -703,7 +706,7 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
iAlpha,
iBeta,
(x - 1), // Note: x==0 if doing mvHash
- iRoughEval,
+ iEval,
uDepth,
iCheckSee,
&iExtend);
@@ -721,9 +724,10 @@ Search(IN SEARCHER_THREAD_CONTEXT *ctx,
// Decide how much (if any) to reduce this move's depth --
// graded LMR.
{
- INT iLMR = GetLMRReduction(iRoughEval,
+ INT iLMR = GetLMRReduction(iEval,
iAlpha,
iBeta,
+ iImprovement,
ctx,
uDepth,
uLegalMoves,