From db229504e2c68a92177985bfbf7a870349257301 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 28 Apr 2014 17:15:16 +0200 Subject: [PATCH 1/1] Rearrange interpolation formula Put the division at the end to reduce rounding errors. This alters the bench due to different rounding errors, but should not alter ELO in any way. bench: 7615217 --- src/evaluate.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index ccc3d915..ede94ec0 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -779,9 +779,9 @@ namespace { sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL); } - // Interpolate between a middlegame and an endgame score, scaling by 'sf' + // Interpolate between a middlegame and a (scaled by 'sf') endgame score Value v = mg_value(score) * int(ei.mi->game_phase()) - + eg_value(score) * int(sf) / SCALE_FACTOR_NORMAL * int(PHASE_MIDGAME - ei.mi->game_phase()); + + eg_value(score) * int(PHASE_MIDGAME - ei.mi->game_phase()) * sf / SCALE_FACTOR_NORMAL; v /= PHASE_MIDGAME; -- 2.39.2