From 0fdc75c0bdf1b273f080724d03fd706ebb8c17cb Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Fri, 6 Nov 2009 16:08:39 +0100 Subject: [PATCH] IID in pv also when TT move depth is too small Try an internal iterative deepening not only when we don't have a TT move but also if search depth is more then 4*OnePly higher then TT move depth. On some tests it seems that in around 20% of cases ttMove changes ! Signed-off-by: Marco Costalba --- src/search.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index c1a91a97..23066d8f 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1103,8 +1103,11 @@ namespace { tte = TT.retrieve(pos.get_key()); ttMove = (tte ? tte->move() : MOVE_NONE); - // Go with internal iterative deepening if we don't have a TT move - if (UseIIDAtPVNodes && ttMove == MOVE_NONE && depth >= 5*OnePly) + // Go with internal iterative deepening if we don't have a TT move or + // if search depth is more then 4*OnePly higher then TT move depth. + if ( UseIIDAtPVNodes + && depth >= 5*OnePly + &&(!ttMove || depth > tte->depth() + 4*OnePly)) { search_pv(pos, ss, alpha, beta, depth-2*OnePly, ply, threadID); ttMove = ss[ply].pv[ply]; -- 2.39.2