From: protonspring Date: Fri, 5 Apr 2019 03:45:52 +0000 (-0600) Subject: Remove BetweenBB Array #2076 X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=f98c77413b68d506977bc078de7a47455968a926 Remove BetweenBB Array #2076 Non functional change. --- diff --git a/src/bitboard.cpp b/src/bitboard.cpp index 2adf2779..94dfa70f 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -27,7 +27,6 @@ uint8_t PopCnt16[1 << 16]; uint8_t SquareDistance[SQUARE_NB][SQUARE_NB]; -Bitboard BetweenBB[SQUARE_NB][SQUARE_NB]; Bitboard LineBB[SQUARE_NB][SQUARE_NB]; Bitboard DistanceRingBB[SQUARE_NB][8]; Bitboard PseudoAttacks[PIECE_TYPE_NB][SQUARE_NB]; @@ -121,10 +120,7 @@ void Bitboards::init() { for (PieceType pt : { BISHOP, ROOK }) for (Square s2 = SQ_A1; s2 <= SQ_H8; ++s2) if (PseudoAttacks[pt][s1] & s2) - { LineBB[s1][s2] = (attacks_bb(pt, s1, 0) & attacks_bb(pt, s2, 0)) | s1 | s2; - BetweenBB[s1][s2] = attacks_bb(pt, s1, square_bb(s2)) & attacks_bb(pt, s2, square_bb(s1)); - } } } diff --git a/src/bitboard.h b/src/bitboard.h index 77986638..b1d961f4 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -68,7 +68,6 @@ constexpr Bitboard Center = (FileDBB | FileEBB) & (Rank4BB | Rank5BB); extern uint8_t PopCnt16[1 << 16]; extern uint8_t SquareDistance[SQUARE_NB][SQUARE_NB]; -extern Bitboard BetweenBB[SQUARE_NB][SQUARE_NB]; extern Bitboard LineBB[SQUARE_NB][SQUARE_NB]; extern Bitboard DistanceRingBB[SQUARE_NB][8]; extern Bitboard PseudoAttacks[PIECE_TYPE_NB][SQUARE_NB]; @@ -185,13 +184,12 @@ inline Bitboard adjacent_files_bb(File f) { } -/// between_bb() returns a bitboard representing all the squares between the two -/// given ones. For instance, between_bb(SQ_C4, SQ_F7) returns a bitboard with -/// the bits for square d5 and e6 set. If s1 and s2 are not on the same rank, -/// file or diagonal, 0 is returned. +/// between_bb() returns squares that are linearly between the given squares +/// If the given squares are not on a same file/rank/diagonal, return 0. inline Bitboard between_bb(Square s1, Square s2) { - return BetweenBB[s1][s2]; + return LineBB[s1][s2] & ( (AllSquares << (s1 + (s1 < s2))) + ^(AllSquares << (s2 + !(s1 < s2)))); }