/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/// PawnInfo is a class which contains various information about a pawn
/// structure. Currently, it only includes a middle game and an end game
/// pawn structure evaluation, and a bitboard of passed pawns. We may want
/// PawnInfo is a class which contains various information about a pawn
/// structure. Currently, it only includes a middle game and an end game
/// pawn structure evaluation, and a bitboard of passed pawns. We may want
-/// to add further information in the future. A lookup to the pawn hash table
-/// (performed by calling the get_pawn_info method in a PawnInfoTable object)
-/// returns a pointer to a PawnInfo object.
+/// to add further information in the future. A lookup to the pawn hash
+/// table (performed by calling the pawn_info method in a PawnInfoTable
+/// object) returns a pointer to a PawnInfo object.
- Score updateShelter(const Position& pos, Square ksq);
+ Score update_safety(const Position& pos, Square ksq);
+
+ template<Color Us>
+ int shelter_storm(const Position& pos, Square ksq);
- Score evaluate_pawns(const Position& pos, Bitboard ourPawns, Bitboard theirPawns, PawnInfo* pi) const;
+ static Score evaluate_pawns(const Position& pos, Bitboard ourPawns, Bitboard theirPawns, PawnInfo* pi);
-inline Score PawnInfo::king_shelter(const Position& pos, Square ksq) {
- return kingSquares[Us] == ksq ? kingShelters[Us] : updateShelter<Us>(pos, ksq);
+inline Score PawnInfo::king_safety(const Position& pos, Square ksq) {
+ return kingSquares[Us] == ksq ? kingShelters[Us] : update_safety<Us>(pos, ksq);