17#ifndef HOOVER_CHESS_UTILS__PGN_READER__PAWN_LOOKUPS_H_INCLUDED
18#define HOOVER_CHESS_UTILS__PGN_READER__PAWN_LOOKUPS_H_INCLUDED
63 assert(
rowOf(sq) <= 6U);
70 assert(
rowOf(sq) <= 6U);
82 assert(
rowOf(sq) == 3U);
117 assert(
rowOf(sq) >= 1U);
124 assert(
rowOf(sq) >= 1U);
136 assert(
rowOf(sq) == 4U);
144 static constexpr std::array<SquareSet, 2U>
ctRank8 {
153 static constexpr std::array<SquareSet, 2U>
ctRank3 {
Definition pawn-lookups.h:142
static SquareSet rank3(Color turn) noexcept
Definition pawn-lookups.h:181
static constexpr std::array< std::int64_t, 2U > ctPawnAdvanceShift
Definition pawn-lookups.h:162
static SquareSet singleAdvanceNoPromoLegalDstMask(Color turn) noexcept
Definition pawn-lookups.h:176
static SquareSet rank8(Color turn) noexcept
Definition pawn-lookups.h:186
static constexpr std::array< SquareSet, 2U > ctAdvanceNoPromoLegalDstMask
Definition pawn-lookups.h:167
static constexpr std::array< SquareSet, 2U > ctRank3
Definition pawn-lookups.h:153
static constexpr std::array< SquareSet, 2U > ctRank8
Definition pawn-lookups.h:144
static std::int64_t pawnAdvanceShift(Color turn) noexcept
Definition pawn-lookups.h:191
Set of squares. Implemented using a bit-mask.
Definition chessboard-types-squareset.h:35
static constexpr SquareSet column(RowColumn col) noexcept
Returns a set of squares in column number col.
Definition chessboard-types-squareset.h:471
static constexpr SquareSet row(RowColumn row) noexcept
Returns a set of squares in row number row.
Definition chessboard-types-squareset.h:485
constexpr RowColumn rowOf(Square sq) noexcept
Returns row number of square.
Definition chessboard-types.h:343
constexpr Square addToSquareNoOverflowCheck(Square sq, std::int_fast8_t shift) noexcept
Adds to square. This function performs no overflow checking.
Definition chessboard-types.h:390
Color
Color of a piece or side to move.
Definition chessboard-types.h:194
Square
Named square.
Definition chessboard-types.h:122
constexpr RowColumn columnOf(Square sq) noexcept
Returns column number of square.
Definition chessboard-types.h:331
@ BLACK
Black piece or black side to move.
@ WHITE
White piece or white side to move.
const U64Type & turnSpecificLookup(const std::array< U64Type, 2U > &array, Color turn) noexcept
Piece attack tables.
Definition lookup-utils.h:64
Definition chessboard-types-squareset.h:30
static constexpr Square pawnRetreatSq(Square sq) noexcept
Definition pawn-lookups.h:128
static constexpr Square captureLeftSq(Square sq) noexcept
Definition pawn-lookups.h:114
static constexpr SquareSet captureRight(SquareSet pawns) noexcept
Definition pawn-lookups.h:109
static constexpr Square pawnDoubleRetreatSq(Square sq) noexcept
Definition pawn-lookups.h:134
static constexpr SquareSet pawnAdvance(SquareSet pawns) noexcept
Definition pawn-lookups.h:99
static constexpr SquareSet captureLeft(SquareSet pawns) noexcept
Definition pawn-lookups.h:104
static constexpr Square captureRightSq(Square sq) noexcept
Definition pawn-lookups.h:121
static constexpr Square pawnRetreatSq(Square sq) noexcept
Definition pawn-lookups.h:74
static constexpr Square pawnDoubleRetreatSq(Square sq) noexcept
Definition pawn-lookups.h:80
static constexpr Square captureRightSq(Square sq) noexcept
Definition pawn-lookups.h:67
static constexpr SquareSet captureLeft(SquareSet pawns) noexcept
Definition pawn-lookups.h:50
static constexpr Square captureLeftSq(Square sq) noexcept
Definition pawn-lookups.h:60
static constexpr SquareSet captureRight(SquareSet pawns) noexcept
Definition pawn-lookups.h:55
static constexpr SquareSet pawnAdvance(SquareSet pawns) noexcept
Definition pawn-lookups.h:45
Definition pawn-lookups.h:31