X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fposition.h;h=2762d2f88f72392b35db97b33669b349c6164488;hb=48b0d41220c35ce50f5fc26c77b2879a75d104d2;hp=9730d3dc24b253d276fdb8ffe2e0771cc91a8087;hpb=5d79af9e0d466572217dc47f5c307f6fd382a646;p=stockfish diff --git a/src/position.h b/src/position.h index 9730d3dc..2762d2f8 100644 --- a/src/position.h +++ b/src/position.h @@ -244,12 +244,13 @@ public: // Information about pawns bool pawn_is_passed(Color c, Square s) const; - bool pawn_is_isolated(Color c, Square s) const; - bool pawn_is_doubled(Color c, Square s) const; + static bool pawn_is_passed(Bitboard theirPawns, Color c, Square s); + static bool pawn_is_isolated(Bitboard ourPawns, Square s); + static bool pawn_is_doubled(Bitboard ourPawns, Color c, Square s); // Open and half-open files - bool file_is_open(File f) const; - bool file_is_half_open(Color c, File f) const; + static bool file_is_open(Bitboard pawns, File f); + static bool file_is_half_open(Bitboard pawns, File f); // Weak squares bool square_is_weak(Square s, Color c) const; @@ -591,20 +592,24 @@ inline bool Position::pawn_is_passed(Color c, Square s) const { return !(pawns(opposite_color(c)) & passed_pawn_mask(c, s)); } -inline bool Position::pawn_is_isolated(Color c, Square s) const { - return !(pawns(c) & neighboring_files_bb(s)); +inline bool Position::pawn_is_passed(Bitboard theirPawns, Color c, Square s) { + return !(theirPawns & passed_pawn_mask(c, s)); } -inline bool Position::pawn_is_doubled(Color c, Square s) const { - return pawns(c) & squares_behind(c, s); +inline bool Position::pawn_is_isolated(Bitboard ourPawns, Square s) { + return !(ourPawns & neighboring_files_bb(s)); } -inline bool Position::file_is_open(File f) const { - return !(pawns() & file_bb(f)); +inline bool Position::pawn_is_doubled(Bitboard ourPawns, Color c, Square s) { + return ourPawns & squares_behind(c, s); } -inline bool Position::file_is_half_open(Color c, File f) const { - return !(pawns(c) & file_bb(f)); +inline bool Position::file_is_open(Bitboard pawns, File f) { + return !(pawns & file_bb(f)); +} + +inline bool Position::file_is_half_open(Bitboard pawns, File f) { + return !(pawns & file_bb(f)); } inline bool Position::square_is_weak(Square s, Color c) const {