]> git.sesse.net Git - stockfish/commitdiff
Revert "Pass evalMargin through SearchStack as eval"
authorMarco Costalba <mcostalba@gmail.com>
Sat, 16 Oct 2010 10:54:44 +0000 (11:54 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Mon, 18 Oct 2010 07:19:48 +0000 (08:19 +0100)
Restore full no functional change also in Faked Split mode.

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

index 29d022added67563087a207714086d02c45b50fe..13a0175aae57a728c0f8d3635da1be34ba1d795d 100644 (file)
@@ -700,7 +700,7 @@ namespace {
     int64_t nodes;
     Move move;
     Depth depth, ext, newDepth;
-    Value value, alpha, beta;
+    Value value, evalMargin, alpha, beta;
     bool isCheck, moveIsCheck, captureOrPromotion, dangerous;
     int researchCountFH, researchCountFL;
 
@@ -719,8 +719,7 @@ namespace {
 
     // Step 5. Evaluate the position statically
     // At root we do this only to get reference value for child nodes
-    ss->evalMargin = VALUE_NONE;
-    ss->eval = isCheck ? VALUE_NONE : evaluate(pos, ss->evalMargin);
+    ss->eval = isCheck ? VALUE_NONE : evaluate(pos, evalMargin);
 
     // Step 6. Razoring (omitted at root)
     // Step 7. Static null move pruning (omitted at root)
@@ -966,7 +965,7 @@ namespace {
     Key posKey;
     Move ttMove, move, excludedMove, threatMove;
     Depth ext, newDepth;
-    Value bestValue, value, oldAlpha;
+    Value bestValue, value, evalMargin, oldAlpha;
     Value refinedValue, nullValue, futilityBase, futilityValueScaled; // Non-PV specific
     bool isCheck, singleEvasion, singularExtensionNode, moveIsCheck, captureOrPromotion, dangerous;
     bool mateThreat = false;
@@ -981,6 +980,7 @@ namespace {
     {
         sp = ss->sp;
         tte = NULL;
+        evalMargin = VALUE_ZERO;
         ttMove = excludedMove = MOVE_NONE;
         threatMove = sp->threatMove;
         mateThreat = sp->mateThreat;
@@ -1041,19 +1041,19 @@ namespace {
     // Step 5. Evaluate the position statically and
     // update gain statistics of parent move.
     if (isCheck)
-        ss->eval = ss->evalMargin = VALUE_NONE;
+        ss->eval = evalMargin = VALUE_NONE;
     else if (tte)
     {
         assert(tte->static_value() != VALUE_NONE);
 
         ss->eval = tte->static_value();
-        ss->evalMargin = tte->static_value_margin();
+        evalMargin = tte->static_value_margin();
         refinedValue = refine_eval(tte, ss->eval, ply);
     }
     else
     {
-        refinedValue = ss->eval = evaluate(pos, ss->evalMargin);
-        TT.store(posKey, VALUE_NONE, VALUE_TYPE_NONE, DEPTH_NONE, MOVE_NONE, ss->eval, ss->evalMargin);
+        refinedValue = ss->eval = evaluate(pos, evalMargin);
+        TT.store(posKey, VALUE_NONE, VALUE_TYPE_NONE, DEPTH_NONE, MOVE_NONE, ss->eval, evalMargin);
     }
 
     // Save gain for the parent non-capture move
@@ -1179,7 +1179,7 @@ split_point_start: // At split points actual search starts from here
     CheckInfo ci(pos);
     ss->bestMove = MOVE_NONE;
     singleEvasion = !SpNode && isCheck && mp.number_of_evasions() == 1;
-    futilityBase = ss->eval + ss->evalMargin;
+    futilityBase = ss->eval + evalMargin;
     singularExtensionNode =  !SpNode
                            && depth >= SingularExtensionDepth[PvNode]
                            && tte
@@ -1421,7 +1421,7 @@ split_point_start: // At split points actual search starts from here
 
     ValueType vt = (bestValue <= oldAlpha ? VALUE_TYPE_UPPER : bestValue >= beta ? VALUE_TYPE_LOWER : VALUE_TYPE_EXACT);
     move = (bestValue <= oldAlpha ? MOVE_NONE : ss->bestMove);
-    TT.store(posKey, value_to_tt(bestValue, ply), vt, depth, move, ss->eval, ss->evalMargin);
+    TT.store(posKey, value_to_tt(bestValue, ply), vt, depth, move, ss->eval, evalMargin);
 
     // Update killers and history only for non capture moves that fails high
     if (    bestValue >= beta
@@ -2576,7 +2576,7 @@ split_point_start: // At split points actual search starts from here
 
     // Initialize search stack
     init_ss_array(ss, PLY_MAX_PLUS_2);
-    ss[0].eval = ss[0].evalMargin = VALUE_NONE;
+    ss[0].eval = VALUE_NONE;
     count = 0;
 
     // Generate all legal moves
index 4bb8b0ad1d3ae67bd4466a270c9c4004535f1932..5c635478f2fa7d1bdb4010381a06b109fa395694 100644 (file)
@@ -57,7 +57,6 @@ struct SearchStack {
   Move killers[2];
   Depth reduction;
   Value eval;
-  Value evalMargin;
   bool skipNullMove;
   SplitPoint* sp;
 };