]> git.sesse.net Git - stockfish/commitdiff
Use zero null move margin when depth < 4 * OnePly
authorJoona Kiiski <joona.kiiski@gmail.com>
Fri, 12 Feb 2010 14:40:00 +0000 (16:40 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 15 Feb 2010 18:14:41 +0000 (19:14 +0100)
This is because when we are below 4 * OnePly, the null move
will directly jump to qsearch and if we are below beta,
our opponent is above beta and will get immediate
stand pat cut off.

So basically this patch is just optimizing away useless
evaluation calls. dbg_hit_on() runs show that this heuristic
is correct >99% of cases. Transposition table probably causes
some inaccurary?

After 1148 games on QUAD
mod-orig: 583 - 565 +5 elo

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/search.cpp

index dece7fd4958217523da01dbdae0dc0e5196fc971..3e74ddc2168af68d20774a46402fcbdadc1748ec 100644 (file)
@@ -1334,7 +1334,7 @@ namespace {
         && !isCheck
         && !value_is_mate(beta)
         &&  ok_to_do_nullmove(pos)
-        &&  staticValue >= beta - NullMoveMargin)
+        &&  staticValue >= beta - (depth >= 4 * OnePly ? NullMoveMargin : 0))
     {
         ss[ply].currentMove = MOVE_NULL;