From a98dee783582c84ca2647ca28daad0c9a13d1d35 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Thu, 15 Jul 2010 15:45:27 +0200 Subject: [PATCH 1/1] Retire apply_scale_factor() and scale.h Directly inline in the only occurence. No functional change. Signed-off-by: Marco Costalba --- src/endgame.h | 1 - src/evaluate.cpp | 5 +++-- src/material.h | 1 - src/scale.h | 52 ------------------------------------------------ src/value.h | 16 +++++++++++---- 5 files changed, 15 insertions(+), 60 deletions(-) delete mode 100644 src/scale.h diff --git a/src/endgame.h b/src/endgame.h index b8fb7e82..89b5ca4d 100644 --- a/src/endgame.h +++ b/src/endgame.h @@ -26,7 +26,6 @@ //// #include "position.h" -#include "scale.h" #include "value.h" diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 80bec874..73ffcfb0 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -29,7 +29,6 @@ #include "evaluate.h" #include "material.h" #include "pawns.h" -#include "scale.h" #include "thread.h" #include "ucioption.h" @@ -1075,7 +1074,9 @@ namespace { assert(eg_value(v) > -VALUE_INFINITE && eg_value(v) < VALUE_INFINITE); assert(ph >= PHASE_ENDGAME && ph <= PHASE_MIDGAME); - Value ev = apply_scale_factor(eg_value(v), sf[(eg_value(v) > Value(0) ? WHITE : BLACK)]); + Value eg = eg_value(v); + ScaleFactor f = sf[eg > Value(0) ? WHITE : BLACK]; + Value ev = Value((eg * f) / int(SCALE_FACTOR_NORMAL)); int result = (mg_value(v) * ph + ev * (128 - ph)) / 128; return Value(result & ~(GrainSize - 1)); diff --git a/src/material.h b/src/material.h index 9d2175c1..5e8eb5fd 100644 --- a/src/material.h +++ b/src/material.h @@ -27,7 +27,6 @@ #include "endgame.h" #include "position.h" -#include "scale.h" //// diff --git a/src/scale.h b/src/scale.h deleted file mode 100644 index a02cc764..00000000 --- a/src/scale.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Stockfish, a UCI chess playing engine derived from Glaurung 2.1 - Copyright (C) 2004-2008 Tord Romstad (Glaurung author) - Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad - - Stockfish is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Stockfish is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - - -#if !defined(SCALE_H_INCLUDED) -#define SCALE_H_INCLUDED - -//// -//// Includes -//// - -#include "value.h" - - -//// -//// Types -//// - -enum ScaleFactor { - SCALE_FACTOR_ZERO = 0, - SCALE_FACTOR_NORMAL = 64, - SCALE_FACTOR_MAX = 128, - SCALE_FACTOR_NONE = 255 -}; - - -//// -//// Inline functions -//// - -inline Value apply_scale_factor(Value v, ScaleFactor f) { - return Value((v * f) / int(SCALE_FACTOR_NORMAL)); -} - - -#endif // !defined(SCALE_H_INCLUDED) diff --git a/src/value.h b/src/value.h index 788fb3a8..a0cd066f 100644 --- a/src/value.h +++ b/src/value.h @@ -41,15 +41,23 @@ enum ValueType { enum Value { - VALUE_DRAW = 0, + VALUE_DRAW = 0, VALUE_KNOWN_WIN = 15000, - VALUE_MATE = 30000, - VALUE_INFINITE = 30001, - VALUE_NONE = 30002, + VALUE_MATE = 30000, + VALUE_INFINITE = 30001, + VALUE_NONE = 30002, VALUE_ENSURE_SIGNED = -1 }; +enum ScaleFactor { + SCALE_FACTOR_ZERO = 0, + SCALE_FACTOR_NORMAL = 64, + SCALE_FACTOR_MAX = 128, + SCALE_FACTOR_NONE = 255 +}; + + /// Score enum keeps a midgame and an endgame value in a single /// integer (enum), first LSB 16 bits are used to store endgame /// value, while upper bits are used for midgame value. -- 2.39.2