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 Move((from << 6) + to);
}
+constexpr Move reverse_move(Move m) {
+ return make_move(to_sq(m), from_sq(m));
+}
+
template<MoveType T>
constexpr Move make(Square from, Square to, PieceType pt = KNIGHT) {
return Move(T + ((pt - KNIGHT) << 12) + (from << 6) + to);