X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=9567d6b851a0a8ec8d0cae53419e0aa71531e4de;hp=8ce7dab55df09cc92a9ba14ebd2ef4c48de94fad;hb=7bc36887144bc6a682e54a91044641f913176449;hpb=04ff9c2548eb4d8b8a59db23f7212c7a8cdd25aa diff --git a/src/types.h b/src/types.h index 8ce7dab5..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; @@ -162,11 +177,11 @@ enum ScaleFactor { SCALE_FACTOR_NONE = 255 }; -enum ValueType { - VALUE_TYPE_NONE = 0, - VALUE_TYPE_UPPER = 1, - VALUE_TYPE_LOWER = 2, - VALUE_TYPE_EXACT = VALUE_TYPE_UPPER | VALUE_TYPE_LOWER +enum Bound { + BOUND_NONE = 0, + BOUND_UPPER = 1, + BOUND_LOWER = 2, + BOUND_EXACT = BOUND_UPPER | BOUND_LOWER }; enum Value { @@ -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); }