Permalink
Browse files

Do not razor after a null move

We don't want to return unproven null move fails high, so
that if a position is so good that null move fails high we
want to check this with real do_move() / undo_move() test,
not just razoring the position because, from the opponent
point of view, is very bad.

These are tests results at 1+0

Mod vs Orig +252 -264 =483  49.40%
Mod vs Toga II 1.4.1SE  +365 -325 =309  52.00%

So it seems a very slightly regression regarding orig version (but
withing error bar) and a nice increase against Toga that is what we
are interested most. Orig version scores 49.75% against Toga, so
we welcome this change ;-)

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
1 parent 00a3380 commit 39f2eda2851e5f468de6edc3313801c25a8b716a @mcostalba committed Apr 30, 2009
Showing with 1 addition and 0 deletions.
  1. +1 −0 src/search.cpp
View
@@ -1309,6 +1309,7 @@ namespace {
else if ( !value_is_mate(beta)
&& depth < RazorDepth
&& approximateEval < beta - RazorApprMargins[int(depth) - 2]
+ && ss[ply - 1].currentMove != MOVE_NULL
&& ttMove == MOVE_NONE
&& !pos.has_pawn_on_7th(pos.side_to_move()))
{

0 comments on commit 39f2eda

Please sign in to comment.