-/// The PawnInfoTable class represents a pawn hash table. The most important
-/// method is pawn_info, which returns a pointer to a PawnInfo object.
-
-class PawnInfoTable : public SimpleHash<PawnInfo, PawnTableSize> {
-public:
- PawnInfo* pawn_info(const Position& pos) const;
-
-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);
-}