From 06a8fd2154db41c4e438a1b065c1471d0dfd5815 Mon Sep 17 00:00:00 2001 From: Torsten Franz Date: Tue, 3 Apr 2018 23:33:55 +0200 Subject: [PATCH] Simplify ThreatBySafePawn evaluation Simplify ThreatBySafePawn evaluation by removing the 'if (weak)' speed optimization check from threats evaluation. This is a non functional change as it removes just a speed optimization conditional which was probably useful before but does no longer provide benefits. This section section had a few more lines not long ago, with ThreatByHangingPawn and a loop through the threatened pieces, but now there is not much left. Passed STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 47775 W: 9696 L: 9624 D: 28455 http://tests.stockfishchess.org/tests/view/5ac298910ebc591746423f8b Closes https://github.com/official-stockfish/Stockfish/pull/1531 Non functional change. --- src/evaluate.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 3e0533b2..e39bcb4a 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -520,17 +520,13 @@ namespace { // Non-pawn enemies attacked by a pawn nonPawnEnemies = pos.pieces(Them) ^ pos.pieces(Them, PAWN); - weak = nonPawnEnemies & attackedBy[Us][PAWN]; - if (weak) - { - // Our safe or protected pawns - b = pos.pieces(Us, PAWN) - & (~attackedBy[Them][ALL_PIECES] | attackedBy[Us][ALL_PIECES]); + // Our safe or protected pawns + b = pos.pieces(Us, PAWN) + & (~attackedBy[Them][ALL_PIECES] | attackedBy[Us][ALL_PIECES]); - safeThreats = pawn_attacks_bb(b) & weak; - score += ThreatBySafePawn * popcount(safeThreats); - } + safeThreats = pawn_attacks_bb(b) & nonPawnEnemies; + score += ThreatBySafePawn * popcount(safeThreats); // Squares strongly protected by the enemy, either because they defend the // square with a pawn, or because they defend the square twice and we don't. -- 2.39.2