X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftypes.h;h=e08fc8534e818e57c7459509758977081efd1ece;hp=444d7afd3d08eeab3132c389c155cae066a1ccd5;hb=d3947b2f3e4121db67aef6845b59562b1cec0665;hpb=8cff4862a65bdbf156609fea14f47ea4bdf42df3 diff --git a/src/types.h b/src/types.h index 444d7afd..e08fc853 100644 --- a/src/types.h +++ b/src/types.h @@ -17,7 +17,7 @@ along with this program. If not, see . */ -#if !defined(TYPES_H_INCLUDED) +#ifndef TYPES_H_INCLUDED #define TYPES_H_INCLUDED /// For Linux and OSX configuration is done automatically using Makefile. To get @@ -42,6 +42,8 @@ #include "platform.h" +#define unlikely(x) (x) // For code annotation purposes + #if defined(_WIN64) && !defined(IS_64BIT) # include // MSVC popcnt and bsfq instrinsics # define IS_64BIT @@ -63,7 +65,7 @@ # define CACHE_LINE_ALIGNMENT __attribute__ ((aligned(CACHE_LINE_SIZE))) #endif -#if defined(_MSC_VER) +#ifdef _MSC_VER # define FORCE_INLINE __forceinline #elif defined(__GNUC__) # define FORCE_INLINE inline __attribute__((always_inline)) @@ -71,13 +73,13 @@ # define FORCE_INLINE inline #endif -#if defined(USE_POPCNT) +#ifdef USE_POPCNT const bool HasPopCnt = true; #else const bool HasPopCnt = false; #endif -#if defined(IS_64BIT) +#ifdef IS_64BIT const bool Is64Bit = true; #else const bool Is64Bit = false; @@ -88,7 +90,7 @@ typedef uint64_t Bitboard; const int MAX_MOVES = 192; const int MAX_PLY = 100; -const int MAX_PLY_PLUS_2 = MAX_PLY + 2; +const int MAX_PLY_PLUS_6 = MAX_PLY + 6; /// A move needs 16 bits to be stored /// @@ -194,7 +196,7 @@ enum Depth { DEPTH_ZERO = 0 * ONE_PLY, DEPTH_QS_CHECKS = -1 * ONE_PLY, DEPTH_QS_NO_CHECKS = -2 * ONE_PLY, - DEPTH_QS_RECAPTURES = -7 * ONE_PLY, + DEPTH_QS_RECAPTURES = -5 * ONE_PLY, DEPTH_NONE = -127 * ONE_PLY }; @@ -272,15 +274,15 @@ inline T operator-(const T d1, const T d2) { return T(int(d1) - int(d2)); } \ inline T operator*(int i, const T d) { return T(i * int(d)); } \ inline T operator*(const T d, int i) { return T(int(d) * i); } \ inline T operator-(const T d) { return T(-int(d)); } \ -inline T& operator+=(T& d1, const T d2) { d1 = d1 + d2; return d1; } \ -inline T& operator-=(T& d1, const T d2) { d1 = d1 - d2; return d1; } \ -inline T& operator*=(T& d, int i) { d = T(int(d) * i); return d; } +inline T& operator+=(T& d1, const T d2) { return d1 = d1 + d2; } \ +inline T& operator-=(T& d1, const T d2) { return d1 = d1 - d2; } \ +inline T& operator*=(T& d, int i) { return d = T(int(d) * i); } #define ENABLE_OPERATORS_ON(T) ENABLE_SAFE_OPERATORS_ON(T) \ -inline T operator++(T& d, int) { d = T(int(d) + 1); return d; } \ -inline T operator--(T& d, int) { d = T(int(d) - 1); return d; } \ +inline T& operator++(T& d) { return d = T(int(d) + 1); } \ +inline T& operator--(T& d) { return d = T(int(d) - 1); } \ inline T operator/(const T d, int i) { return T(int(d) / i); } \ -inline T& operator/=(T& d, int i) { d = T(int(d) / i); return d; } +inline T& operator/=(T& d, int i) { return d = T(int(d) / i); } ENABLE_OPERATORS_ON(Value) ENABLE_OPERATORS_ON(PieceType) @@ -311,12 +313,12 @@ inline Score operator/(Score s, int i) { extern Value PieceValue[PHASE_NB][PIECE_NB]; -struct MoveStack { +struct ExtMove { Move move; int score; }; -inline bool operator<(const MoveStack& f, const MoveStack& s) { +inline bool operator<(const ExtMove& f, const ExtMove& s) { return f.score < s.score; } @@ -438,4 +440,4 @@ inline const std::string square_to_string(Square s) { return ch; } -#endif // !defined(TYPES_H_INCLUDED) +#endif // #ifndef TYPES_H_INCLUDED