-template<PieceType Pt>
-inline unsigned magic_index(Square s, Bitboard occupied) {
-
- extern Bitboard RookMasks[SQUARE_NB];
- extern Bitboard RookMagics[SQUARE_NB];
- extern unsigned RookShifts[SQUARE_NB];
- extern Bitboard BishopMasks[SQUARE_NB];
- extern Bitboard BishopMagics[SQUARE_NB];
- extern unsigned BishopShifts[SQUARE_NB];
-
- Bitboard* const Masks = Pt == ROOK ? RookMasks : BishopMasks;
- Bitboard* const Magics = Pt == ROOK ? RookMagics : BishopMagics;
- unsigned* const Shifts = Pt == ROOK ? RookShifts : BishopShifts;