17#ifndef HOOVER_CHESS_UTILS__PGN_READER__BITBOARD_ATTACKS_BLACK_MAGIC_H_INCLUDED
18#define HOOVER_CHESS_UTILS__PGN_READER__BITBOARD_ATTACKS_BLACK_MAGIC_H_INCLUDED
20#include "pgnreader-config.h"
43 const std::uint64_t offset {
44 (((
static_cast<std::uint64_t
>(occupancyMask) | data.mask) * data.hash) >> 55U) };
46 return SquareSet { data.attacksBase[offset] };
55 const std::uint64_t offset {
56 (((
static_cast<std::uint64_t
>(occupancyMask) | data.mask) * data.hash) >> 52U) };
58 return SquareSet { data.attacksBase[offset] };
Slider attacks implementation using Elementary Bitboards.
Definition bitboard-attacks-black-magic.h:35
static SquareSet getBishopAttackMask(Square sq, SquareSet occupancyMask) noexcept
See Attacks::getBishopAttackMask() for documentation.
Definition bitboard-attacks-black-magic.h:38
static SquareSet getRookAttackMask(Square sq, SquareSet occupancyMask) noexcept
See Attacks::getRookAttackMask() for documentation.
Definition bitboard-attacks-black-magic.h:50
Set of squares. Implemented using a bit-mask.
Definition chessboard-types-squareset.h:35
std::uint_fast8_t SquareUnderlyingType
Underlying type of Square
Definition chessboard-types.h:38
Square
Named square.
Definition chessboard-types.h:122
Definition chessboard-types-squareset.h:30
const BitBoardTables ctBitBoardTables
Various bitboard attack and other tables.
Definition bitboard-tables.h:122
std::array< BlackMagicData, 64U > blackMagicRookMagics
Definition bitboard-tables.h:134
std::array< BlackMagicData, 64U > blackMagicBishopMagics
Definition bitboard-tables.h:133