Remove useless mate value special handling in null search
authorJoona Kiiski <joona.kiiski@gmail.com>
Mon, 20 Jul 2009 12:47:05 +0000 (15:47 +0300)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 26 Jul 2009 17:55:17 +0000 (18:55 +0100)
After 1200 games (1CPU), time control 1+0:

Mod vs Orig: +331 =564 -277  +16 ELO

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

index fb3084247761dca2a60a4155546620fc936eff81..252b4299239e5e039e3bb90a4ba04ed0cef5b49d 100644 (file)
@@ -1249,14 +1249,7 @@ namespace {
 
         pos.undo_null_move();
 
-        if (value_is_mate(nullValue))
-        {
-            if (nullValue == value_mated_in(ply + 2))
-                mateThreat = true;
-
-            /* Do not return unproven mates */
-        }
-        else if (nullValue >= beta)
+        if (nullValue >= beta)
         {
             if (depth < 6 * OnePly)
                 return beta;
@@ -1272,6 +1265,9 @@ namespace {
             // move which was reduced. If a connection is found, return a fail
             // low score (which will cause the reduced move to fail high in the
             // parent node, which will trigger a re-search with full depth).
+            if (nullValue == value_mated_in(ply + 2))
+                mateThreat = true;
+
             ss[ply].threatMove = ss[ply + 1].currentMove;
             if (   depth < ThreatDepth
                 && ss[ply - 1].reduction