-FORCE_INLINE unsigned r_index(Square s, Bitboard occ) {
- return unsigned(((occ & RMasks[s]) * RMagics[s]) >> RShifts[s]);
-}
-
-FORCE_INLINE unsigned b_index(Square s, Bitboard occ) {
- return unsigned(((occ & BMasks[s]) * BMagics[s]) >> BShifts[s]);
-}
-
-#else // if !defined(IS_64BIT)
-
-FORCE_INLINE unsigned r_index(Square s, Bitboard occ) {
- unsigned lo = unsigned(occ) & unsigned(RMasks[s]);
- unsigned hi = unsigned(occ >> 32) & unsigned(RMasks[s] >> 32);
- return (lo * unsigned(RMagics[s]) ^ hi * unsigned(RMagics[s] >> 32)) >> RShifts[s];
-}
-
-FORCE_INLINE unsigned b_index(Square s, Bitboard occ) {
- unsigned lo = unsigned(occ) & unsigned(BMasks[s]);
- unsigned hi = unsigned(occ >> 32) & unsigned(BMasks[s] >> 32);
- return (lo * unsigned(BMagics[s]) ^ hi * unsigned(BMagics[s] >> 32)) >> BShifts[s];
-}
-
-#endif