return result;
}
+/// Multiplication of a Score by an boolean
+inline Score operator*(Score s, bool b) {
+ return Score(int(s) * int(b));
+}
+
constexpr Color operator~(Color c) {
return Color(c ^ BLACK); // Toggle color
}
return Piece(pc ^ 8); // Swap color of piece B_KNIGHT -> W_KNIGHT
}
+inline File map_to_queenside(File f) {
+ return std::min(f, File(FILE_H - f)); // Map files ABCDEFGH to files ABCDDCBA
+}
+
constexpr CastlingRights operator&(Color c, CastlingRights cr) {
return CastlingRights((c == WHITE ? WHITE_CASTLING : BLACK_CASTLING) & cr);
}