From a4c11b71acc4aeab032128d4ba9d0d4ccd51aa20 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 23 Jun 2013 10:16:43 +0200 Subject: [PATCH] Retire in_front_bb(Color c, Square s) overload Explciitly call rank_of() in the few places where it is used. No functional change. --- src/bitboard.h | 13 ++++--------- src/endgame.cpp | 4 ++-- src/evaluate.cpp | 2 +- src/pawns.cpp | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/bitboard.h b/src/bitboard.h index 07b0f9ba..a133c65b 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -135,20 +135,15 @@ inline Bitboard adjacent_files_bb(File f) { } -/// 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 -/// (or square), from the given color's point of view. For instance, -/// in_front_bb(WHITE, RANK_5) will give all squares on ranks 6, 7 and 8, while -/// in_front_bb(BLACK, SQ_D3) will give all squares on ranks 1 and 2. +/// in_front_bb() takes a color and a rank as input, and returns a bitboard +/// representing all the squares on all ranks in front of the rank, from the +/// given color's point of view. For instance, in_front_bb(BLACK, RANK_3) will +/// give all squares on ranks 1 and 2. inline Bitboard in_front_bb(Color c, Rank r) { return InFrontBB[c][r]; } -inline Bitboard in_front_bb(Color c, Square s) { - return InFrontBB[c][rank_of(s)]; -} - /// between_bb returns a bitboard representing all squares between two squares. /// For instance, between_bb(SQ_C4, SQ_F7) returns a bitboard with the bits for diff --git a/src/endgame.cpp b/src/endgame.cpp index cff5e699..4323a420 100644 --- a/src/endgame.cpp +++ b/src/endgame.cpp @@ -704,7 +704,7 @@ ScaleFactor Endgame::operator()(const Position& pos) const { // Does the defending king block the pawns? if ( square_distance(ksq, relative_square(strongerSide, SQ_A8)) <= 1 || ( file_of(ksq) == FILE_A - && !(in_front_bb(strongerSide, ksq) & pawns))) + && !(in_front_bb(strongerSide, rank_of(ksq)) & pawns))) return SCALE_FACTOR_DRAW; } // Are all pawns on the 'h' file? @@ -713,7 +713,7 @@ ScaleFactor Endgame::operator()(const Position& pos) const { // Does the defending king block the pawns? if ( square_distance(ksq, relative_square(strongerSide, SQ_H8)) <= 1 || ( file_of(ksq) == FILE_H - && !(in_front_bb(strongerSide, ksq) & pawns))) + && !(in_front_bb(strongerSide, rank_of(ksq)) & pawns))) return SCALE_FACTOR_DRAW; } return SCALE_FACTOR_NONE; diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 9584c0ed..68984802 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -989,7 +989,7 @@ Value do_evaluate(const Position& pos, Value& margin) { // black pawns: a4, b4 white: b2 then pawn in b4 is giving support. if (!opposed) { - b2 = supporters & in_front_bb(winnerSide, blockSq + pawn_push(winnerSide)); + b2 = supporters & in_front_bb(winnerSide, rank_of(blockSq + pawn_push(winnerSide))); while (b2) // This while-loop could be replaced with LSB/MSB (depending on color) { diff --git a/src/pawns.cpp b/src/pawns.cpp index ea5f9287..4ca1bb0e 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -220,7 +220,7 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) { const Color Them = (Us == WHITE ? BLACK : WHITE); Value safety = MaxSafetyBonus; - Bitboard b = pos.pieces(PAWN) & (in_front_bb(Us, ksq) | rank_bb(ksq)); + Bitboard b = pos.pieces(PAWN) & (in_front_bb(Us, rank_of(ksq)) | rank_bb(ksq)); Bitboard ourPawns = b & pos.pieces(Us) & ~rank_bb(ksq); Bitboard theirPawns = b & pos.pieces(Them); Rank rkUs, rkThem; -- 2.39.2