X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=9567d6b851a0a8ec8d0cae53419e0aa71531e4de;hp=eaa9a25b56137a6e44716cdacdec4609d4d8ea78;hb=2dfc94e0b6e011b0eb769fa0f0fcf9f2c4a2987b;hpb=b76c04c0975326d3274d7d7fb6df4edef7a040b5 diff --git a/src/types.h b/src/types.h index eaa9a25b..9567d6b8 100644 --- a/src/types.h +++ b/src/types.h @@ -44,6 +44,7 @@ #pragma warning(disable: 4127) // Conditional expression is constant #pragma warning(disable: 4146) // Unary minus operator applied to unsigned type #pragma warning(disable: 4800) // Forcing value to bool 'true' or 'false' +#pragma warning(disable: 4996) // Function _ftime() may be unsafe // MSVC does not support typedef signed __int8 int8_t; @@ -59,6 +60,20 @@ typedef unsigned __int64 uint64_t; # include #endif +#if defined(_WIN32) || defined(_WIN64) +# include +typedef _timeb sys_time_t; + +inline void system_time(sys_time_t* t) { _ftime(t); } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.time * 1000LL + t.millitm; } +#else +# include +typedef timeval sys_time_t; + +inline void system_time(sys_time_t* t) { gettimeofday(t, NULL); } +inline uint64_t time_to_msec(const sys_time_t& t) { return t.tv_sec * 1000LL + t.tv_usec / 1000; } +#endif + #if defined(_WIN64) # include // MSVC popcnt and bsfq instrinsics # define IS_64BIT @@ -99,7 +114,7 @@ typedef uint64_t Key; typedef uint64_t Bitboard; const int MAX_MOVES = 256; -const int MAX_PLY = 100; +const int MAX_PLY = 256; const int MAX_PLY_PLUS_2 = MAX_PLY + 2; const Bitboard FileABB = 0x0101010101010101ULL; @@ -185,7 +200,7 @@ enum Value { }; enum PieceType { - NO_PIECE_TYPE = 0, + NO_PIECE_TYPE = 0, ALL_PIECES = 0, PAWN = 1, KNIGHT = 2, BISHOP = 3, ROOK = 4, QUEEN = 5, KING = 6 }; @@ -333,6 +348,7 @@ const Value QueenValueEndgame = Value(0x9FE); extern const Value PieceValueMidgame[17]; // Indexed by Piece or PieceType extern const Value PieceValueEndgame[17]; extern int SquareDistance[64][64]; +extern uint8_t BitCount8Bit[256]; inline Color operator~(Color c) { return Color(c ^ 1); @@ -451,7 +467,7 @@ inline int is_castle(Move m) { return (m & (3 << 14)) == (3 << 14); } -inline PieceType promotion_piece_type(Move m) { +inline PieceType promotion_type(Move m) { return PieceType(((m >> 12) & 3) + 2); }