mirror of
https://github.com/sockspls/badfish
synced 2025-05-02 01:29:36 +00:00
Removes a few Bitboards and functions
No longer used closes https://github.com/official-stockfish/Stockfish/pull/4695 No functional change
This commit is contained in:
parent
6a31f54d3c
commit
42d28424bc
2 changed files with 0 additions and 104 deletions
|
@ -32,9 +32,6 @@ std::string pretty(Bitboard b);
|
||||||
|
|
||||||
} // namespace Stockfish::Bitboards
|
} // namespace Stockfish::Bitboards
|
||||||
|
|
||||||
constexpr Bitboard AllSquares = ~Bitboard(0);
|
|
||||||
constexpr Bitboard DarkSquares = 0xAA55AA55AA55AA55ULL;
|
|
||||||
|
|
||||||
constexpr Bitboard FileABB = 0x0101010101010101ULL;
|
constexpr Bitboard FileABB = 0x0101010101010101ULL;
|
||||||
constexpr Bitboard FileBBB = FileABB << 1;
|
constexpr Bitboard FileBBB = FileABB << 1;
|
||||||
constexpr Bitboard FileCBB = FileABB << 2;
|
constexpr Bitboard FileCBB = FileABB << 2;
|
||||||
|
@ -53,17 +50,6 @@ constexpr Bitboard Rank6BB = Rank1BB << (8 * 5);
|
||||||
constexpr Bitboard Rank7BB = Rank1BB << (8 * 6);
|
constexpr Bitboard Rank7BB = Rank1BB << (8 * 6);
|
||||||
constexpr Bitboard Rank8BB = Rank1BB << (8 * 7);
|
constexpr Bitboard Rank8BB = Rank1BB << (8 * 7);
|
||||||
|
|
||||||
constexpr Bitboard QueenSide = FileABB | FileBBB | FileCBB | FileDBB;
|
|
||||||
constexpr Bitboard CenterFiles = FileCBB | FileDBB | FileEBB | FileFBB;
|
|
||||||
constexpr Bitboard KingSide = FileEBB | FileFBB | FileGBB | FileHBB;
|
|
||||||
constexpr Bitboard Center = (FileDBB | FileEBB) & (Rank4BB | Rank5BB);
|
|
||||||
|
|
||||||
constexpr Bitboard KingFlank[FILE_NB] = {
|
|
||||||
QueenSide ^ FileDBB, QueenSide, QueenSide,
|
|
||||||
CenterFiles, CenterFiles,
|
|
||||||
KingSide, KingSide, KingSide ^ FileEBB
|
|
||||||
};
|
|
||||||
|
|
||||||
extern uint8_t PopCnt16[1 << 16];
|
extern uint8_t PopCnt16[1 << 16];
|
||||||
extern uint8_t SquareDistance[SQUARE_NB][SQUARE_NB];
|
extern uint8_t SquareDistance[SQUARE_NB][SQUARE_NB];
|
||||||
|
|
||||||
|
@ -124,11 +110,6 @@ constexpr bool more_than_one(Bitboard b) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
constexpr bool opposite_colors(Square s1, Square s2) {
|
|
||||||
return (s1 + rank_of(s1) + s2 + rank_of(s2)) & 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// rank_bb() and file_bb() return a bitboard representing all the squares on
|
/// rank_bb() and file_bb() return a bitboard representing all the squares on
|
||||||
/// the given file or rank.
|
/// the given file or rank.
|
||||||
|
|
||||||
|
@ -177,25 +158,6 @@ inline Bitboard pawn_attacks_bb(Color c, Square s) {
|
||||||
return PawnAttacks[c][s];
|
return PawnAttacks[c][s];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// pawn_double_attacks_bb() returns the squares doubly attacked by pawns of the
|
|
||||||
/// given color from the squares in the given bitboard.
|
|
||||||
|
|
||||||
template<Color C>
|
|
||||||
constexpr Bitboard pawn_double_attacks_bb(Bitboard b) {
|
|
||||||
return C == WHITE ? shift<NORTH_WEST>(b) & shift<NORTH_EAST>(b)
|
|
||||||
: shift<SOUTH_WEST>(b) & shift<SOUTH_EAST>(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// adjacent_files_bb() returns a bitboard representing all the squares on the
|
|
||||||
/// adjacent files of a given square.
|
|
||||||
|
|
||||||
constexpr Bitboard adjacent_files_bb(Square s) {
|
|
||||||
return shift<EAST>(file_bb(s)) | shift<WEST>(file_bb(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// line_bb() returns a bitboard representing an entire line (from board edge
|
/// line_bb() returns a bitboard representing an entire line (from board edge
|
||||||
/// to board edge) that intersects the two given squares. If the given squares
|
/// to board edge) that intersects the two given squares. If the given squares
|
||||||
/// are not on a same file/rank/diagonal, the function returns 0. For instance,
|
/// are not on a same file/rank/diagonal, the function returns 0. For instance,
|
||||||
|
@ -234,32 +196,6 @@ constexpr Bitboard forward_ranks_bb(Color c, Square s) {
|
||||||
: ~Rank8BB >> 8 * relative_rank(BLACK, s);
|
: ~Rank8BB >> 8 * relative_rank(BLACK, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// forward_file_bb() returns a bitboard representing all the squares along the
|
|
||||||
/// line in front of the given one, from the point of view of the given color.
|
|
||||||
|
|
||||||
constexpr Bitboard forward_file_bb(Color c, Square s) {
|
|
||||||
return forward_ranks_bb(c, s) & file_bb(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// pawn_attack_span() returns a bitboard representing all the squares that can
|
|
||||||
/// be attacked by a pawn of the given color when it moves along its file, starting
|
|
||||||
/// from the given square.
|
|
||||||
|
|
||||||
constexpr Bitboard pawn_attack_span(Color c, Square s) {
|
|
||||||
return forward_ranks_bb(c, s) & adjacent_files_bb(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// passed_pawn_span() returns a bitboard which can be used to test if a pawn of
|
|
||||||
/// the given color and on the given square is a passed pawn.
|
|
||||||
|
|
||||||
constexpr Bitboard passed_pawn_span(Color c, Square s) {
|
|
||||||
return pawn_attack_span(c, s) | forward_file_bb(c, s);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// aligned() returns true if the squares s1, s2 and s3 are aligned either on a
|
/// aligned() returns true if the squares s1, s2 and s3 are aligned either on a
|
||||||
/// straight or on a diagonal line.
|
/// straight or on a diagonal line.
|
||||||
|
|
||||||
|
@ -277,8 +213,6 @@ template<> inline int distance<Rank>(Square x, Square y) { return std::abs(rank_
|
||||||
template<> inline int distance<Square>(Square x, Square y) { return SquareDistance[x][y]; }
|
template<> inline int distance<Square>(Square x, Square y) { return SquareDistance[x][y]; }
|
||||||
|
|
||||||
inline int edge_distance(File f) { return std::min(f, File(FILE_H - f)); }
|
inline int edge_distance(File f) { return std::min(f, File(FILE_H - f)); }
|
||||||
inline int edge_distance(Rank r) { return std::min(r, Rank(RANK_8 - r)); }
|
|
||||||
|
|
||||||
|
|
||||||
/// attacks_bb(Square) returns the pseudo attacks of the give piece type
|
/// attacks_bb(Square) returns the pseudo attacks of the give piece type
|
||||||
/// assuming an empty board.
|
/// assuming an empty board.
|
||||||
|
@ -430,14 +364,6 @@ inline Square pop_lsb(Bitboard& b) {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// frontmost_sq() returns the most advanced square for the given color,
|
|
||||||
/// requires a non-zero bitboard.
|
|
||||||
inline Square frontmost_sq(Color c, Bitboard b) {
|
|
||||||
assert(b);
|
|
||||||
return c == WHITE ? msb(b) : lsb(b);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Stockfish
|
} // namespace Stockfish
|
||||||
|
|
||||||
#endif // #ifndef BITBOARD_H_INCLUDED
|
#endif // #ifndef BITBOARD_H_INCLUDED
|
||||||
|
|
|
@ -100,7 +100,6 @@ public:
|
||||||
template<PieceType Pt> int count(Color c) const;
|
template<PieceType Pt> int count(Color c) const;
|
||||||
template<PieceType Pt> int count() const;
|
template<PieceType Pt> int count() const;
|
||||||
template<PieceType Pt> Square square(Color c) const;
|
template<PieceType Pt> Square square(Color c) const;
|
||||||
bool is_on_semiopen_file(Color c, Square s) const;
|
|
||||||
|
|
||||||
// Castling
|
// Castling
|
||||||
CastlingRights castling_rights(Color c) const;
|
CastlingRights castling_rights(Color c) const;
|
||||||
|
@ -129,11 +128,6 @@ public:
|
||||||
Piece moved_piece(Move m) const;
|
Piece moved_piece(Move m) const;
|
||||||
Piece captured_piece() const;
|
Piece captured_piece() const;
|
||||||
|
|
||||||
// Piece specific
|
|
||||||
bool pawn_passed(Color c, Square s) const;
|
|
||||||
bool opposite_bishops() const;
|
|
||||||
int pawns_on_same_color_squares(Color c, Square s) const;
|
|
||||||
|
|
||||||
// Doing and undoing moves
|
// Doing and undoing moves
|
||||||
void do_move(Move m, StateInfo& newSt);
|
void do_move(Move m, StateInfo& newSt);
|
||||||
void do_move(Move m, StateInfo& newSt, bool givesCheck);
|
void do_move(Move m, StateInfo& newSt, bool givesCheck);
|
||||||
|
@ -149,7 +143,6 @@ public:
|
||||||
Key key() const;
|
Key key() const;
|
||||||
Key key_after(Move m) const;
|
Key key_after(Move m) const;
|
||||||
Key material_key() const;
|
Key material_key() const;
|
||||||
Key pawn_key() const;
|
|
||||||
|
|
||||||
// Other properties of the position
|
// Other properties of the position
|
||||||
Color side_to_move() const;
|
Color side_to_move() const;
|
||||||
|
@ -160,7 +153,6 @@ public:
|
||||||
bool has_game_cycle(int ply) const;
|
bool has_game_cycle(int ply) const;
|
||||||
bool has_repeated() const;
|
bool has_repeated() const;
|
||||||
int rule50_count() const;
|
int rule50_count() const;
|
||||||
Score psq_score() const;
|
|
||||||
Value psq_eg_stm() const;
|
Value psq_eg_stm() const;
|
||||||
Value non_pawn_material(Color c) const;
|
Value non_pawn_material(Color c) const;
|
||||||
Value non_pawn_material() const;
|
Value non_pawn_material() const;
|
||||||
|
@ -258,10 +250,6 @@ inline Square Position::ep_square() const {
|
||||||
return st->epSquare;
|
return st->epSquare;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Position::is_on_semiopen_file(Color c, Square s) const {
|
|
||||||
return !(pieces(c, PAWN) & file_bb(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool Position::can_castle(CastlingRights cr) const {
|
inline bool Position::can_castle(CastlingRights cr) const {
|
||||||
return st->castlingRights & cr;
|
return st->castlingRights & cr;
|
||||||
}
|
}
|
||||||
|
@ -318,14 +306,6 @@ inline Bitboard Position::check_squares(PieceType pt) const {
|
||||||
return st->checkSquares[pt];
|
return st->checkSquares[pt];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Position::pawn_passed(Color c, Square s) const {
|
|
||||||
return !(pieces(~c, PAWN) & passed_pawn_span(c, s));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline int Position::pawns_on_same_color_squares(Color c, Square s) const {
|
|
||||||
return popcount(pieces(c, PAWN) & ((DarkSquares & s) ? DarkSquares : ~DarkSquares));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline Key Position::key() const {
|
inline Key Position::key() const {
|
||||||
return adjust_key50<false>(st->key);
|
return adjust_key50<false>(st->key);
|
||||||
}
|
}
|
||||||
|
@ -341,10 +321,6 @@ inline Key Position::material_key() const {
|
||||||
return st->materialKey;
|
return st->materialKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Score Position::psq_score() const {
|
|
||||||
return psq;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline Value Position::psq_eg_stm() const {
|
inline Value Position::psq_eg_stm() const {
|
||||||
return (sideToMove == WHITE ? 1 : -1) * eg_value(psq);
|
return (sideToMove == WHITE ? 1 : -1) * eg_value(psq);
|
||||||
}
|
}
|
||||||
|
@ -365,12 +341,6 @@ inline int Position::rule50_count() const {
|
||||||
return st->rule50;
|
return st->rule50;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Position::opposite_bishops() const {
|
|
||||||
return count<BISHOP>(WHITE) == 1
|
|
||||||
&& count<BISHOP>(BLACK) == 1
|
|
||||||
&& opposite_colors(square<BISHOP>(WHITE), square<BISHOP>(BLACK));
|
|
||||||
}
|
|
||||||
|
|
||||||
inline bool Position::is_chess960() const {
|
inline bool Position::is_chess960() const {
|
||||||
return chess960;
|
return chess960;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue