From: Stefano Cardanobile Date: Sat, 10 Sep 2016 15:23:26 +0000 (+0200) Subject: Reorder evaluation start X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=4c95edddbf1aaec22c343adaca4796df0137e4c3;ds=sidebyside Reorder evaluation start In evaluate, we start by initializing the pos.psq_score and adding the material imbalance. After that, we check whether a specialized eval exists and if yes we return that value and discard whatever we have computed until now. It sounds more logical to first probe material entry and return if we have a specialized eval, and only if it is not the case initialize eval with some values. There is no measurable speed-difference on my computer. Non functional change. --- diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 35764b71..5e4f4bdd 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -779,23 +779,22 @@ Value Eval::evaluate(const Position& pos) { assert(!pos.checkers()); + Score mobility[COLOR_NB] = { SCORE_ZERO, SCORE_ZERO }; EvalInfo ei; - Score score, mobility[COLOR_NB] = { SCORE_ZERO, SCORE_ZERO }; - - // Initialize score by reading the incrementally updated scores included in - // the position object (material + piece square tables). Score is computed - // internally from the white point of view. - score = pos.psq_score(); // Probe the material hash table ei.me = Material::probe(pos); - score += ei.me->imbalance(); // If we have a specialized evaluation function for the current material // configuration, call it and return. if (ei.me->specialized_eval_exists()) return ei.me->evaluate(pos); + // Initialize score by reading the incrementally updated scores included in + // the position object (material + piece square tables) and the material + // imbalance. Score is computed internally from the white point of view. + Score score = pos.psq_score() + ei.me->imbalance(); + // Probe the pawn hash table ei.pi = Pawns::probe(pos); score += ei.pi->pawns_score();