Skip to content

Commit

Permalink
Reset bestMove before entering main moves loop
Browse files Browse the repository at this point in the history
After razoring, IID, null verification and singular
extension searches we have could have a dirty ss->bestMove,
restore to MOVE_NONE before to enter moves loop.

This should avoid to store in TT a stale move when
we fail low.

Tested together with previous patch that is the
one that gives ELO.

After 1152 games at 1+0 on my QUAD
Mod vs Orig +233 =716 -203 (+9 ELO)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information
mcostalba committed Aug 2, 2010
1 parent cbcc581 commit 5aef918
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/search.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1051,6 +1051,7 @@ namespace {
if (tte)
{
assert(tte->static_value() != VALUE_NONE);

ss->eval = tte->static_value();
ei.kingDanger[pos.side_to_move()] = tte->king_danger();
}
Expand All @@ -1059,7 +1060,6 @@ namespace {
ss->eval = evaluate(pos, ei);
TT.store(posKey, VALUE_NONE, VALUE_TYPE_NONE, DEPTH_NONE, MOVE_NONE, ss->eval, ei.kingDanger[pos.side_to_move()]);
}

refinedValue = refine_eval(tte, ss->eval, ply); // Enhance accuracy with TT value if possible
update_gains(pos, (ss-1)->currentMove, (ss-1)->eval, ss->eval);
}
Expand Down Expand Up @@ -1183,9 +1183,11 @@ namespace {
// Initialize a MovePicker object for the current position
MovePicker mp = MovePicker(pos, ttMove, depth, H, ss, (PvNode ? -VALUE_INFINITE : beta));
CheckInfo ci(pos);
ss->bestMove = MOVE_NONE;
singleEvasion = isCheck && mp.number_of_evasions() == 1;
singularExtensionNode = depth >= SingularExtensionDepth[PvNode]
&& tte && tte->move()
&& tte
&& tte->move()
&& !excludedMove // Do not allow recursive singular extension search
&& is_lower_bound(tte->type())
&& tte->depth() >= depth - 3 * OnePly;
Expand Down Expand Up @@ -1238,6 +1240,7 @@ namespace {
Value v = search<NonPV>(pos, ss, b - 1, b, depth / 2, ply);
ss->skipNullMove = false;
ss->excludedMove = MOVE_NONE;
ss->bestMove = MOVE_NONE;
if (v < b)
ext = OnePly;
}
Expand Down

0 comments on commit 5aef918

Please sign in to comment.