-private:
- template<Color Us>
- static Score evaluate_pawns(const Position& pos, Bitboard ourPawns, Bitboard theirPawns, PawnInfo* pi);
-};
-
-
-inline Score PawnInfo::pawns_value() const {
- return value;
-}
-
-inline Bitboard PawnInfo::pawn_attacks(Color c) const {
- return pawnAttacks[c];
-}
-
-inline Bitboard PawnInfo::passed_pawns(Color c) const {
- return passedPawns[c];
-}
-
-inline int PawnInfo::file_is_half_open(Color c, File f) const {
- return halfOpenFiles[c] & (1 << int(f));
-}
-
-inline int PawnInfo::has_open_file_to_left(Color c, File f) const {
- return halfOpenFiles[c] & ((1 << int(f)) - 1);
-}
-
-inline int PawnInfo::has_open_file_to_right(Color c, File f) const {
- return halfOpenFiles[c] & ~((1 << int(f+1)) - 1);
-}
-
-template<Color Us>
-inline Score PawnInfo::king_safety(const Position& pos, Square ksq) {
- return kingSquares[Us] == ksq ? kingShelters[Us] : update_safety<Us>(pos, ksq);
-}
-
-#endif // !defined(PAWNS_H_INCLUDED)