More readable trapped rook condition

Prefer

file_of(s) < file_of(ksq)

to the inidrect

file_of(ksq) < FILE_E

To evaluate if semiopen side to check is the left side.

Also other small touches while there.

No functional change.
This commit is contained in:
Marco Costalba
2014-04-13 13:35:58 +02:00
parent 81a8c1118b
commit 7bce8831d3
3 changed files with 32 additions and 30 deletions

View File

@@ -280,12 +280,11 @@ Value Entry::shelter_storm(const Position& pos, Square ksq) {
}
/// Entry::update_safety() calculates and caches a bonus for king safety.
/// It is called only when king square changes, which is about 20% of total
/// king_safety() calls.
/// Entry::do_king_safety() calculates a bonus for king safety. It is called only
/// when king square changes, which is about 20% of total king_safety() calls.
template<Color Us>
Score Entry::update_safety(const Position& pos, Square ksq) {
Score Entry::do_king_safety(const Position& pos, Square ksq) {
kingSquares[Us] = ksq;
castlingRights[Us] = pos.can_castle(Us);
@@ -296,7 +295,7 @@ Score Entry::update_safety(const Position& pos, Square ksq) {
while (!(DistanceRingsBB[ksq][minKPdistance[Us]++] & pawns)) {}
if (relative_rank(Us, ksq) > RANK_4)
return kingSafety[Us] = make_score(0, -16 * minKPdistance[Us]);
return make_score(0, -16 * minKPdistance[Us]);
Value bonus = shelter_storm<Us>(pos, ksq);
@@ -307,11 +306,11 @@ Score Entry::update_safety(const Position& pos, Square ksq) {
if (pos.can_castle(MakeCastling<Us, QUEEN_SIDE>::right))
bonus = std::max(bonus, shelter_storm<Us>(pos, relative_square(Us, SQ_C1)));
return kingSafety[Us] = make_score(bonus, -16 * minKPdistance[Us]);
return make_score(bonus, -16 * minKPdistance[Us]);
}
// Explicit template instantiation
template Score Entry::update_safety<WHITE>(const Position& pos, Square ksq);
template Score Entry::update_safety<BLACK>(const Position& pos, Square ksq);
template Score Entry::do_king_safety<WHITE>(const Position& pos, Square ksq);
template Score Entry::do_king_safety<BLACK>(const Position& pos, Square ksq);
} // namespace Pawns