From 908d98820b9f055d3089cc947f6901a2d6fe0d81 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 23 Jun 2013 11:15:58 +0200 Subject: [PATCH] Don't explicitize enum values when not needed Compiler will chose the correct values in sequential order for you. Also move file and rank bitboards definitions to bitboard.h No functional change. --- src/bitboard.h | 18 +++++++++++++++ src/types.h | 59 +++++++++++++++++--------------------------------- 2 files changed, 38 insertions(+), 39 deletions(-) diff --git a/src/bitboard.h b/src/bitboard.h index a133c65b..6094c343 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -37,6 +37,24 @@ bool probe_kpk(Square wksq, Square wpsq, Square bksq, Color us); } +const Bitboard FileABB = 0x0101010101010101ULL; +const Bitboard FileBBB = FileABB << 1; +const Bitboard FileCBB = FileABB << 2; +const Bitboard FileDBB = FileABB << 3; +const Bitboard FileEBB = FileABB << 4; +const Bitboard FileFBB = FileABB << 5; +const Bitboard FileGBB = FileABB << 6; +const Bitboard FileHBB = FileABB << 7; + +const Bitboard Rank1BB = 0xFF; +const Bitboard Rank2BB = Rank1BB << (8 * 1); +const Bitboard Rank3BB = Rank1BB << (8 * 2); +const Bitboard Rank4BB = Rank1BB << (8 * 3); +const Bitboard Rank5BB = Rank1BB << (8 * 4); +const Bitboard Rank6BB = Rank1BB << (8 * 5); +const Bitboard Rank7BB = Rank1BB << (8 * 6); +const Bitboard Rank8BB = Rank1BB << (8 * 7); + CACHE_LINE_ALIGNMENT extern Bitboard RMasks[SQUARE_NB]; diff --git a/src/types.h b/src/types.h index ade9a620..c5b901a9 100644 --- a/src/types.h +++ b/src/types.h @@ -90,25 +90,6 @@ const int MAX_MOVES = 192; const int MAX_PLY = 100; const int MAX_PLY_PLUS_2 = MAX_PLY + 2; -const Bitboard FileABB = 0x0101010101010101ULL; -const Bitboard FileBBB = FileABB << 1; -const Bitboard FileCBB = FileABB << 2; -const Bitboard FileDBB = FileABB << 3; -const Bitboard FileEBB = FileABB << 4; -const Bitboard FileFBB = FileABB << 5; -const Bitboard FileGBB = FileABB << 6; -const Bitboard FileHBB = FileABB << 7; - -const Bitboard Rank1BB = 0xFF; -const Bitboard Rank2BB = Rank1BB << (8 * 1); -const Bitboard Rank3BB = Rank1BB << (8 * 2); -const Bitboard Rank4BB = Rank1BB << (8 * 3); -const Bitboard Rank5BB = Rank1BB << (8 * 4); -const Bitboard Rank6BB = Rank1BB << (8 * 5); -const Bitboard Rank7BB = Rank1BB << (8 * 6); -const Bitboard Rank8BB = Rank1BB << (8 * 7); - - /// A move needs 16 bits to be stored /// /// bit 0- 5: destination square (from 0 to 63) @@ -121,24 +102,24 @@ const Bitboard Rank8BB = Rank1BB << (8 * 7); /// while MOVE_NONE and MOVE_NULL have the same origin and destination square. enum Move { - MOVE_NONE = 0, + MOVE_NONE, MOVE_NULL = 65 }; enum MoveType { - NORMAL = 0, + NORMAL, PROMOTION = 1 << 14, ENPASSANT = 2 << 14, CASTLE = 3 << 14 }; enum CastleRight { // Defined as in PolyGlot book hash key - CASTLES_NONE = 0, - WHITE_OO = 1, - WHITE_OOO = 2, - BLACK_OO = 4, - BLACK_OOO = 8, - ALL_CASTLES = 15, + CASTLES_NONE, + WHITE_OO, + WHITE_OOO = WHITE_OO << 1, + BLACK_OO = WHITE_OO << 2, + BLACK_OOO = WHITE_OO << 3, + ALL_CASTLES = WHITE_OO | WHITE_OOO | BLACK_OO | BLACK_OOO, CASTLE_RIGHT_NB = 16 }; @@ -149,7 +130,7 @@ enum CastlingSide { }; enum Phase { - PHASE_ENDGAME = 0, + PHASE_ENDGAME, PHASE_MIDGAME = 128, MG = 0, EG = 1, PHASE_NB = 2 }; @@ -162,9 +143,9 @@ enum ScaleFactor { }; enum Bound { - BOUND_NONE = 0, - BOUND_UPPER = 1, - BOUND_LOWER = 2, + BOUND_NONE, + BOUND_UPPER, + BOUND_LOWER, BOUND_EXACT = BOUND_UPPER | BOUND_LOWER }; @@ -190,15 +171,15 @@ enum Value { }; enum PieceType { - NO_PIECE_TYPE = 0, ALL_PIECES = 0, - PAWN = 1, KNIGHT = 2, BISHOP = 3, ROOK = 4, QUEEN = 5, KING = 6, + NO_PIECE_TYPE, PAWN, KNIGHT, BISHOP, ROOK, QUEEN, KING, + ALL_PIECES = 0, PIECE_TYPE_NB = 8 }; enum Piece { - NO_PIECE = 0, - W_PAWN = 1, W_KNIGHT = 2, W_BISHOP = 3, W_ROOK = 4, W_QUEEN = 5, W_KING = 6, - B_PAWN = 9, B_KNIGHT = 10, B_BISHOP = 11, B_ROOK = 12, B_QUEEN = 13, B_KING = 14, + NO_PIECE, + W_PAWN = 1, W_KNIGHT, W_BISHOP, W_ROOK, W_QUEEN, W_KING, + B_PAWN = 9, B_KNIGHT, B_BISHOP, B_ROOK, B_QUEEN, B_KING, PIECE_NB = 16 }; @@ -245,11 +226,11 @@ enum Square { }; enum File { - FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H, FILE_NB = 8 + FILE_A, FILE_B, FILE_C, FILE_D, FILE_E, FILE_F, FILE_G, FILE_H, FILE_NB }; enum Rank { - RANK_1, RANK_2, RANK_3, RANK_4, RANK_5, RANK_6, RANK_7, RANK_8, RANK_NB = 8 + RANK_1, RANK_2, RANK_3, RANK_4, RANK_5, RANK_6, RANK_7, RANK_8, RANK_NB }; @@ -258,7 +239,7 @@ enum Rank { /// for midgame value. Compiler is free to choose the enum type as long as can /// keep its data, so ensure Score to be an integer type. enum Score { - SCORE_ZERO = 0, + SCORE_ZERO, SCORE_ENSURE_INTEGER_SIZE_P = INT_MAX, SCORE_ENSURE_INTEGER_SIZE_N = INT_MIN }; -- 2.39.2