&& popcount(phalanx) >= popcount(leverPush))
e->passedPawns[Us] |= s;
+ else if ( stoppers == SquareBB[s + Up]
+ && relative_rank(Us, s) >= RANK_5)
+ {
+ b = shift<Up>(supported) & ~theirPawns;
+ while (b)
+ if (!more_than_one(theirPawns & PawnAttacks[Us][pop_lsb(&b)]))
+ e->passedPawns[Us] |= s;
+ }
+
// Score this pawn
if (!neighbours)
score -= Isolated[opposed];
score += Connected[opposed][!!phalanx][more_than_one(supported)][relative_rank(Us, s)];
if (doubled && !supported)
- score -= Doubled;
+ score -= Doubled;
if (lever)
score += Lever[relative_rank(Us, s)];