Account for Tempo in do_evaluate()
authorMarco Costalba <mcostalba@gmail.com>
Sat, 11 Oct 2014 07:05:47 +0000 (09:05 +0200)
committerJoona Kiiski <joona.kiiski@gmail.com>
Sun, 12 Oct 2014 19:35:07 +0000 (20:35 +0100)
This is more correct because we let evaluate()
to be a pure dispatcher and also now evaluate
and tracing outputs are consistent.

No functional change.

src/evaluate.cpp

index 69df762..acda65f 100644 (file)
@@ -693,7 +693,7 @@ namespace {
     // If we have a specialized evaluation function for the current material
     // configuration, call it and return.
     if (ei.mi->specialized_eval_exists())
-        return ei.mi->evaluate(pos);
+        return ei.mi->evaluate(pos) + Eval::Tempo;
 
     // Probe the pawn hash table
     ei.pi = Pawns::probe(pos, thisThread->pawnsTable);
@@ -793,7 +793,7 @@ namespace {
         Tracing::sf = sf;
     }
 
-    return pos.side_to_move() == WHITE ? v : -v;
+    return (pos.side_to_move() == WHITE ? v : -v) + Eval::Tempo;
   }
 
 
@@ -872,7 +872,7 @@ namespace Eval {
   /// of the position always from the point of view of the side to move.
 
   Value evaluate(const Position& pos) {
-    return do_evaluate<false>(pos) + Tempo;
+    return do_evaluate<false>(pos);
   }