]> git.sesse.net Git - stockfish/blobdiff - src/pawns.cpp
Use templetized operations for Square
[stockfish] / src / pawns.cpp
index c89f2d0585891ec2ebe253b89de39eb305f56a8f..5a789ef24bf376063cbbccdddee49d781a2ad035 100644 (file)
@@ -183,7 +183,7 @@ Score PawnInfoTable::evaluate_pawns(const Position& pos, Bitboard ourPawns,
   Square s;
   File f;
   Rank r;
-  int bonus, backwardWeight;
+  int bonus;
   bool passed, isolated, doubled, opposed, chain, backward, candidate;
   Score value = make_score(0, 0);
   const Square* ptr = pos.piece_list_begin(Us, PAWN);
@@ -214,7 +214,7 @@ Score PawnInfoTable::evaluate_pawns(const Position& pos, Bitboard ourPawns,
       pi->qsStormValue[Us] += QStormTable[relative_square(Us, s)] + bonus;
 
       // Our rank plus previous one. Used for chain detection.
-      b = rank_bb(r) | rank_bb(Us == WHITE ? r - 1 : r + 1);
+      b = rank_bb(r) | rank_bb(Us == WHITE ? r - Rank(1) : r + Rank(1));
 
       // Passed, isolated, doubled or member of a pawn
       // chain (but not the backward one) ?
@@ -227,7 +227,6 @@ Score PawnInfoTable::evaluate_pawns(const Position& pos, Bitboard ourPawns,
       // Test for backward pawn
       //
       backward = false;
-      backwardWeight = 6;
 
       // If the pawn is passed, isolated, or member of a pawn chain
       // it cannot be backward. If can capture an enemy pawn or if
@@ -246,12 +245,7 @@ Score PawnInfoTable::evaluate_pawns(const Position& pos, Bitboard ourPawns,
           // Note that we are sure to find something because pawn is not passed
           // nor isolated, so loop is potentially infinite, but it isn't.
           while (!(b & (ourPawns | theirPawns)))
-          {
               Us == WHITE ? b <<= 8 : b >>= 8;
-              backwardWeight--;
-          }
-
-          assert(backwardWeight > 0);
 
           // The friendly pawn needs to be at least two ranks closer than the enemy
           // pawn in order to help the potentially backward pawn advance.
@@ -288,7 +282,7 @@ Score PawnInfoTable::evaluate_pawns(const Position& pos, Bitboard ourPawns,
 
       if (backward)
       {
-          value -= backwardWeight * BackwardPawnPenalty[f] / 4;
+          value -= BackwardPawnPenalty[f];
           if (!opposed)
               value -= BackwardPawnPenalty[f] / 2;
       }