/// -DUSE_POPCNT | Add runtime support for use of popcnt asm-instruction. Works
/// | only in 64-bit mode. For compiling requires hardware with
/// | popcnt support.
-///
-/// -DOLD_LOCKS | Under Windows are used the fast Slim Reader/Writer (SRW)
-/// | Locks and Condition Variables: these are not supported by
-/// | Windows XP and older, to compile for those platforms you
-/// | should enable OLD_LOCKS.
#include <climits>
#include <cstdlib>
extern const Value PieceValueEndgame[17];
extern int SquareDistance[64][64];
+inline Color operator~(Color c) {
+ return Color(c ^ 1);
+}
+
+inline Square operator~(Square s) {
+ return Square(s ^ 56);
+}
+
inline Value mate_in(int ply) {
return VALUE_MATE - ply;
}
return Color(p >> 3);
}
-inline Color flip(Color c) {
- return Color(c ^ 1);
-}
-
inline Square make_square(File f, Rank r) {
return Square((r << 3) | f);
}
return Rank(s >> 3);
}
-inline Square flip(Square s) {
- return Square(s ^ 56);
-}
-
inline Square mirror(Square s) {
return Square(s ^ 7);
}
return c == WHITE ? DELTA_N : DELTA_S;
}
-inline Square move_from(Move m) {
+inline Square from_sq(Move m) {
return Square((m >> 6) & 0x3F);
}
-inline Square move_to(Move m) {
+inline Square to_sq(Move m) {
return Square(m & 0x3F);
}
return Move(to | (from << 6));
}
-inline Move make_promotion_move(Square from, Square to, PieceType promotion) {
- return Move(to | (from << 6) | (1 << 14) | ((promotion - 2) << 12)) ;
+inline Move make_promotion(Square from, Square to, PieceType pt) {
+ return Move(to | (from << 6) | (1 << 14) | ((pt - 2) << 12)) ;
}
-inline Move make_enpassant_move(Square from, Square to) {
+inline Move make_enpassant(Square from, Square to) {
return Move(to | (from << 6) | (2 << 14));
}
-inline Move make_castle_move(Square from, Square to) {
+inline Move make_castle(Square from, Square to) {
return Move(to | (from << 6) | (3 << 14));
}
inline bool is_ok(Move m) {
- return move_from(m) != move_to(m); // Catches also MOVE_NULL and MOVE_NONE
+ return from_sq(m) != to_sq(m); // Catches also MOVE_NULL and MOVE_NONE
}
#include <string>