Do IID also when we already have a ttMove
authorMarco Costalba <mcostalba@gmail.com>
Sat, 29 May 2010 09:01:25 +0000 (10:01 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 31 May 2010 05:15:39 +0000 (06:15 +0100)
In case tte->depth() is far lower the current depth
and we are in a PV node.

Almost 45% of researches give a different ttMove !

After 999 games at 1+0
Mod vs Orig +174 =694 -131 +15 ELO !!!!!!!

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

index a76ff2ca117f394daf27deb6c306deee8e6005ad..ba0a4f0c596386b623f52ee8b15ddcf9bbaef22b 100644 (file)
@@ -1207,8 +1207,8 @@ namespace {
     }
 
     // Step 9. Internal iterative deepening
-    if (   depth >= IIDDepth[PvNode]
-        && ttMove == MOVE_NONE
+    if (    depth >= IIDDepth[PvNode]
+        && (ttMove == MOVE_NONE || (PvNode && tte->depth() <= depth - 4 * OnePly))
         && (PvNode || (!isCheck && ss[ply].eval >= beta - IIDMargin)))
     {
         Depth d = (PvNode ? depth - 2 * OnePly : depth / 2);