From a093f33154cdd7b1d82e41f67fc673d3a22545bc Mon Sep 17 00:00:00 2001 From: Joona Kiiski Date: Fri, 12 Feb 2010 16:40:00 +0200 Subject: [PATCH] Use zero null move margin when depth < 4 * OnePly 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 --- src/search.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index dece7fd4..3e74ddc2 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -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; -- 2.39.2