Remove openFiles in pawns. (#1917)
authorprotonspring <mike@whiteley.org>
Tue, 1 Jan 2019 12:38:09 +0000 (05:38 -0700)
committerMarco Costalba <mcostalba@users.noreply.github.com>
Tue, 1 Jan 2019 12:38:09 +0000 (13:38 +0100)
A single popcount in evaluate.cpp replaces all openFiles stuff in pawns. It doesn't seem to affect performance at all.

STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 28103 W: 6134 L: 6025 D: 15944
http://tests.stockfishchess.org/tests/view/5b7d70a20ebc5902bdbb1999

No functional change.

src/evaluate.cpp
src/pawns.cpp
src/pawns.h

index 53a54006a7a6cf1afabd0d8a9989c3a7b0b5131b..0a7d0af9ae5b68af2f2519870b3579de9368d2fb 100644 (file)
@@ -717,7 +717,8 @@ namespace {
     behind |= (Us == WHITE ? behind >> 16 : behind << 16);
 
     int bonus = popcount(safe) + popcount(behind & safe);
-    int weight = pos.count<ALL_PIECES>(Us) - 2 * pe->open_files();
+    int weight = pos.count<ALL_PIECES>(Us)
+               - 2 * popcount(pe->semiopenFiles[WHITE] & pe->semiopenFiles[BLACK]);
 
     Score score = make_score(bonus * weight * weight / 16, 0);
 
index edd670b84cc4ec3021fdcd2b3962bbd419cfdc88..a9fc92b25b937b51ca429764a3d30660049db143 100644 (file)
@@ -185,7 +185,6 @@ Entry* probe(const Position& pos) {
   e->key = key;
   e->scores[WHITE] = evaluate<WHITE>(pos, e);
   e->scores[BLACK] = evaluate<BLACK>(pos, e);
-  e->openFiles = popcount(e->semiopenFiles[WHITE] & e->semiopenFiles[BLACK]);
   e->asymmetry = popcount(  (e->passedPawns[WHITE]   | e->passedPawns[BLACK])
                           | (e->semiopenFiles[WHITE] ^ e->semiopenFiles[BLACK]));
 
index df220eabbe9433fffad3dc47577446e49bbf84df..67f966ada59900c71b3a2e02249d456a00669f25 100644 (file)
@@ -39,7 +39,6 @@ struct Entry {
   Bitboard pawn_attacks_span(Color c) const { return pawnAttacksSpan[c]; }
   int weak_unopposed(Color c) const { return weakUnopposed[c]; }
   int pawn_asymmetry() const { return asymmetry; }
-  int open_files() const { return openFiles; }
 
   int semiopen_file(Color c, File f) const {
     return semiopenFiles[c] & (1 << f);
@@ -73,7 +72,6 @@ struct Entry {
   int semiopenFiles[COLOR_NB];
   int pawnsOnSquares[COLOR_NB][COLOR_NB]; // [color][light/dark squares]
   int asymmetry;
-  int openFiles;
 };
 
 typedef HashTable<Entry, 16384> Table;