From: Marco Costalba Date: Sat, 3 Dec 2011 10:43:07 +0000 (+0100) Subject: Retire neighboring_files_bb() overload X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=5c5af4fa6533e22fb56dd22985cf2b3938efde6c Retire neighboring_files_bb() overload Rarely used and we prefer to not hide the complexity. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/bitboard.cpp b/src/bitboard.cpp index b36f8a29..794f54cf 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -17,16 +17,14 @@ along with this program. If not, see . */ +#include #include #include -#include #include "bitboard.h" #include "bitcount.h" #include "rkiss.h" -// Global bitboards definitions with static storage duration are -// automatically set to zero before enter main(). Bitboard RMasks[64]; Bitboard RMagics[64]; Bitboard* RAttacks[64]; @@ -151,18 +149,14 @@ Square pop_1st_bit(Bitboard* bb) { #endif // !defined(USE_BSFQ) -/// init_bitboards() initializes various bitboard arrays. It is called during +/// bitboards_init() initializes various bitboard arrays. It is called during /// program initialization. -void init_bitboards() { +void bitboards_init() { for (Bitboard b = 0; b < 256; b++) BitCount8Bit[b] = (uint8_t)count_1s(b); - for (Square s1 = SQ_A1; s1 <= SQ_H8; s1++) - for (Square s2 = SQ_A1; s2 <= SQ_H8; s2++) - SquareDistance[s1][s2] = std::max(file_distance(s1, s2), rank_distance(s1, s2)); - SquaresByColorBB[DARK] = 0xAA55AA55AA55AA55ULL; SquaresByColorBB[LIGHT] = ~SquaresByColorBB[DARK]; @@ -199,10 +193,14 @@ void init_bitboards() { for (Square s = SQ_A1; s <= SQ_H8; s++) { SquaresInFrontMask[c][s] = in_front_bb(c, s) & file_bb(s); - PassedPawnMask[c][s] = in_front_bb(c, s) & this_and_neighboring_files_bb(s); - AttackSpanMask[c][s] = in_front_bb(c, s) & neighboring_files_bb(s); + PassedPawnMask[c][s] = in_front_bb(c, s) & this_and_neighboring_files_bb(file_of(s)); + AttackSpanMask[c][s] = in_front_bb(c, s) & neighboring_files_bb(file_of(s)); } + for (Square s1 = SQ_A1; s1 <= SQ_H8; s1++) + for (Square s2 = SQ_A1; s2 <= SQ_H8; s2++) + SquareDistance[s1][s2] = std::max(file_distance(s1, s2), rank_distance(s1, s2)); + for (int i = 0; i < 64; i++) if (!CpuIs64Bit) // Matt Taylor's folding trick for 32 bit systems { @@ -276,6 +274,7 @@ namespace { return attacks; } + Bitboard pick_random(Bitboard mask, RKISS& rk, int booster) { Bitboard magic; diff --git a/src/bitboard.h b/src/bitboard.h index 09c00597..1c8a8c22 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -125,29 +125,21 @@ inline Bitboard file_bb(Square s) { } -/// neighboring_files_bb takes a file or a square as input and returns a -/// bitboard representing all squares on the neighboring files. +/// neighboring_files_bb takes a file as input and returns a bitboard representing +/// all squares on the neighboring files. inline Bitboard neighboring_files_bb(File f) { return NeighboringFilesBB[f]; } -inline Bitboard neighboring_files_bb(Square s) { - return NeighboringFilesBB[file_of(s)]; -} - -/// this_and_neighboring_files_bb takes a file or a square as input and returns -/// a bitboard representing all squares on the given and neighboring files. +/// this_and_neighboring_files_bb takes a file as input and returns a bitboard +/// representing all squares on the given and neighboring files. inline Bitboard this_and_neighboring_files_bb(File f) { return ThisAndNeighboringFilesBB[f]; } -inline Bitboard this_and_neighboring_files_bb(Square s) { - return ThisAndNeighboringFilesBB[file_of(s)]; -} - /// in_front_bb() takes a color and a rank or square as input, and returns a /// bitboard representing all the squares on all ranks in front of the rank @@ -291,6 +283,6 @@ extern Square pop_1st_bit(Bitboard* b); extern void print_bitboard(Bitboard b); -extern void init_bitboards(); +extern void bitboards_init(); #endif // !defined(BITBOARD_H_INCLUDED) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 7e4f963e..6b15f6c7 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -850,7 +850,7 @@ namespace { // Increase the bonus if the passed pawn is supported by a friendly pawn // on the same rank and a bit smaller if it's on the previous rank. - supportingPawns = pos.pieces(PAWN, Us) & neighboring_files_bb(s); + supportingPawns = pos.pieces(PAWN, Us) & neighboring_files_bb(file_of(s)); if (supportingPawns & rank_bb(s)) ebonus += Value(r * 20); @@ -979,7 +979,7 @@ namespace { pliesToGo = 2 * movesToGo - int(loserSide == pos.side_to_move()); // Generate list of blocking pawns and supporters - supporters = neighboring_files_bb(s) & candidates; + supporters = neighboring_files_bb(file_of(s)) & candidates; opposed = squares_in_front_of(loserSide, s) & pos.pieces(PAWN, winnerSide); blockers = passed_pawn_mask(loserSide, s) & pos.pieces(PAWN, winnerSide); diff --git a/src/main.cpp b/src/main.cpp index a437f883..1a830970 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -35,7 +35,7 @@ extern void kpk_bitbase_init(); int main(int argc, char* argv[]) { - init_bitboards(); + bitboards_init(); Position::init(); kpk_bitbase_init(); Search::init(); diff --git a/src/pawns.cpp b/src/pawns.cpp index 52bc9f88..d5514e2e 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -223,7 +223,7 @@ Score PawnInfo::updateShelter(const Position& pos, Square ksq) { if (relative_rank(Us, ksq) <= RANK_4) { - pawns = pos.pieces(PAWN, Us) & this_and_neighboring_files_bb(ksq); + pawns = pos.pieces(PAWN, Us) & this_and_neighboring_files_bb(file_of(ksq)); r = ksq & (7 << 3); for (int i = 0; i < 3; i++) {