X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=45acd5abd7cf4ea8285f19abe48f7c73a8fd0971;hp=ab5e1b884864108912de21d311a02fe14e5afb5a;hb=cd732c080b256b5cef64ad0ca2077c413788795f;hpb=213166ba225bcefbbe7dbecdacfd726dfb6c34f9 diff --git a/src/types.h b/src/types.h index ab5e1b88..45acd5ab 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, @@ -182,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 = 136, PawnValueEg = 208, + KnightValueMg = 782, KnightValueEg = 865, + BishopValueMg = 830, BishopValueEg = 918, + RookValueMg = 1289, RookValueEg = 1378, + QueenValueMg = 2529, QueenValueEg = 2687, MidgameLimit = 15258, EndgameLimit = 3915 }; @@ -324,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. @@ -345,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; } @@ -448,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); }