From: Marco Costalba Date: Tue, 9 Dec 2008 16:39:40 +0000 (+0100) Subject: Add behind_bb() helper to simplify code logic X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=389dc0e83bd0a205952432fc9e866dbe32bd54e1;ds=sidebyside Add behind_bb() helper to simplify code logic No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/bitboard.h b/src/bitboard.h index b193786c..847132c4 100644 --- a/src/bitboard.h +++ b/src/bitboard.h @@ -236,6 +236,19 @@ inline Bitboard in_front_bb(Color c, Square s) { } +/// behind_bb() takes a color and a rank or square as input, and returns a +/// bitboard representing all the squares on all ranks behind of the rank +/// (or square), from the given color's point of view. + +inline Bitboard behind_bb(Color c, Rank r) { + return InFrontBB[opposite_color(c)][r]; +} + +inline Bitboard behind_bb(Color c, Square s) { + return in_front_bb(opposite_color(c), square_rank(s)); +} + + /// ray_bb() gives a bitboard representing all squares along the ray in a /// given direction from a given square. diff --git a/src/pawns.cpp b/src/pawns.cpp index 965d1ea3..3a8f88bb 100644 --- a/src/pawns.cpp +++ b/src/pawns.cpp @@ -300,7 +300,7 @@ PawnInfo *PawnInfoTable::get_pawn_info(const Position &pos) { || isolated || chain || (pos.pawn_attacks(us, s) & theirPawns) - || (ourPawns & in_front_bb(them, r) & neighboring_files_bb(f))) + || (ourPawns & behind_bb(us, r) & neighboring_files_bb(f))) backward = false; else { @@ -324,8 +324,8 @@ PawnInfo *PawnInfoTable::get_pawn_info(const Position &pos) { // Test for candidate passed pawn candidate = !passed && pos.file_is_half_open(them, f) - && ( count_1s_max_15(neighboring_files_bb(f) & (in_front_bb(them, r) | rank_bb(r)) & ourPawns) - - count_1s_max_15(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns) + && ( count_1s_max_15(neighboring_files_bb(f) & (behind_bb(us, r) | rank_bb(r)) & ourPawns) + - count_1s_max_15(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns) >= 0); // In order to prevent doubled passed pawns from receiving a too big