X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=9e0f8c3e36da2af2a0c3d58e3bafac44907f46ca;hp=72c5699f1189520b4a178ec07c63246fb49ecafe;hb=542a2b39ed811a3795cdce2416896ffaf2a485cf;hpb=0cfb653eeca1bc44b9d331498a9ccb3e9b97a9c1 diff --git a/src/types.h b/src/types.h index 72c5699f..9e0f8c3e 100644 --- a/src/types.h +++ b/src/types.h @@ -145,12 +145,6 @@ enum CastlingRight { CASTLING_RIGHT_NB = 16 }; -template struct MakeCastling { - static constexpr CastlingRight - right = C == WHITE ? S == QUEEN_SIDE ? WHITE_OOO : WHITE_OO - : S == QUEEN_SIDE ? BLACK_OOO : BLACK_OO; -}; - enum Phase { PHASE_ENDGAME, PHASE_MIDGAME = 128, @@ -159,7 +153,6 @@ enum Phase { enum ScaleFactor { SCALE_FACTOR_DRAW = 0, - SCALE_FACTOR_ONEPAWN = 48, SCALE_FACTOR_NORMAL = 64, SCALE_FACTOR_MAX = 128, SCALE_FACTOR_NONE = 255 @@ -183,11 +176,11 @@ enum Value : int { VALUE_MATE_IN_MAX_PLY = VALUE_MATE - 2 * MAX_PLY, VALUE_MATED_IN_MAX_PLY = -VALUE_MATE + 2 * MAX_PLY, - PawnValueMg = 171, PawnValueEg = 240, - KnightValueMg = 764, KnightValueEg = 848, - BishopValueMg = 826, BishopValueEg = 891, - RookValueMg = 1282, RookValueEg = 1373, - QueenValueMg = 2500, QueenValueEg = 2670, + PawnValueMg = 142, PawnValueEg = 207, + KnightValueMg = 784, KnightValueEg = 868, + BishopValueMg = 828, BishopValueEg = 916, + RookValueMg = 1286, RookValueEg = 1378, + QueenValueMg = 2528, QueenValueEg = 2698, MidgameLimit = 15258, EndgameLimit = 3915 }; @@ -325,10 +318,10 @@ inline Value& operator+=(Value& v, int i) { return v = v + i; } inline Value& operator-=(Value& v, int i) { return v = v - i; } /// Additional operators to add a Direction to a Square -inline Square operator+(Square s, Direction d) { return Square(int(s) + int(d)); } -inline Square operator-(Square s, Direction d) { return Square(int(s) - int(d)); } -inline Square& operator+=(Square &s, Direction d) { return s = s + d; } -inline Square& operator-=(Square &s, Direction d) { return s = s - d; } +constexpr Square operator+(Square s, Direction d) { return Square(int(s) + int(d)); } +constexpr Square operator-(Square s, Direction d) { return Square(int(s) - int(d)); } +inline Square& operator+=(Square& s, Direction d) { return s = s + d; } +inline Square& operator-=(Square& s, Direction d) { return s = s - d; } /// Only declared but not defined. We don't want to multiply two scores due to /// a very high risk of overflow. So user should explicitly convert to integer. @@ -346,7 +339,7 @@ inline Score operator*(Score s, int i) { assert(eg_value(result) == (i * eg_value(s))); assert(mg_value(result) == (i * mg_value(s))); - assert((i == 0) || (result / i) == s ); + assert((i == 0) || (result / i) == s); return result; } @@ -449,7 +442,7 @@ constexpr PieceType promotion_type(Move m) { return PieceType(((m >> 12) & 3) + KNIGHT); } -inline Move make_move(Square from, Square to) { +constexpr Move make_move(Square from, Square to) { return Move((from << 6) + to); }