Make static value saved in TT independent from ply
authorJoona Kiiski <joona.kiiski@gmail.com>
Wed, 16 Sep 2009 03:52:10 +0000 (06:52 +0300)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 17 Sep 2009 13:16:16 +0000 (14:16 +0100)
After 963 games at 1+0

Mod vs Orig +246 =511 -206 52.08%  501.0/962  +14 ELO

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

index 39ed624c9ecc2408234b63c8518c843d3610fe77..7bc90b143d10b85a94ff0a4cbf9f214e9d0b3525 100644 (file)
@@ -1540,14 +1540,10 @@ namespace {
         // Use the cached evaluation score if possible
         assert(ei.futilityMargin == Value(0));
 
-        staticValue = tte->value();
+        staticValue = tte->value() + ply;
     }
     else
-    {
-        staticValue = evaluate(pos, ei, threadID);
-        if (!value_is_mate(staticValue + Value(ply)))
-            staticValue += Value(ply);
-    }
+        staticValue = evaluate(pos, ei, threadID) + ply;
 
     if (ply == PLY_MAX - 1)
         return evaluate(pos, ei, threadID);
@@ -1560,7 +1556,7 @@ namespace {
     {
         // Store the score to avoid a future costly evaluation() call
         if (!isCheck && !tte && ei.futilityMargin == 0)
-            TT.store(pos.get_key(), value_to_tt(bestValue, ply), VALUE_TYPE_EVAL, Depth(-127*OnePly), MOVE_NONE);
+            TT.store(pos.get_key(), bestValue - ply, VALUE_TYPE_EVAL, Depth(-127*OnePly), MOVE_NONE);
 
         return bestValue;
     }