-/// The PawnTable class represents a pawn hash table. The most important
-/// method is probe, which returns a pointer to a PawnEntry object.
-
-class PawnTable : public HashTable<PawnEntry, PawnTableSize> {
-public:
- PawnEntry* probe(const Position& pos) const;
-
-private:
- template<Color Us>
- static Score evaluate_pawns(const Position& pos, Bitboard ourPawns,
- Bitboard theirPawns, PawnEntry* pi);
-};
-
-
-inline Score PawnEntry::pawns_value() const {
- return value;
-}
-
-inline Bitboard PawnEntry::pawn_attacks(Color c) const {
- return pawnAttacks[c];
-}
-
-inline Bitboard PawnEntry::passed_pawns(Color c) const {
- return passedPawns[c];
-}
-
-inline int PawnEntry::file_is_half_open(Color c, File f) const {
- return halfOpenFiles[c] & (1 << int(f));
-}
-
-inline int PawnEntry::has_open_file_to_left(Color c, File f) const {
- return halfOpenFiles[c] & ((1 << int(f)) - 1);
-}
-
-inline int PawnEntry::has_open_file_to_right(Color c, File f) const {
- return halfOpenFiles[c] & ~((1 << int(f+1)) - 1);
-}