X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fposition.h;h=97166360ff390c101c828e455930fcbd9d59682a;hp=9730d3dc24b253d276fdb8ffe2e0771cc91a8087;hb=0d69ac33ff1b0258c9b18dca48f7b8b40fab5713;hpb=bbb24625764619e5886ce0250739a4c9bfdb4d33 diff --git a/src/position.h b/src/position.h index 9730d3dc..97166360 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; @@ -266,6 +267,7 @@ public: int see(Square from, Square to) const; int see(Move m) const; int see(Square to) const; + int see_sign(Move m) const; // Accessing hash keys Key get_key() const; @@ -591,20 +593,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 { @@ -650,8 +656,8 @@ inline Value Position::non_pawn_material(Color c) const { inline Phase Position::game_phase() const { // Values modified by Joona Kiiski - static const Value MidgameLimit = Value(15713); - static const Value EndgameLimit = Value(4428); + static const Value MidgameLimit = Value(15581); + static const Value EndgameLimit = Value(3998); Value npm = non_pawn_material(WHITE) + non_pawn_material(BLACK);