mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Refactor king ring calculation
Compute the "double protection by pawns" expression only once in initialize(), instead of once for each piece in the piece loop. Passed STC http://tests.stockfishchess.org/tests/view/5c1506380ebc5902ba11f3b4 LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 9494 W: 2191 L: 2045 D: 5258 Inspired by Nick Pelling's test http://tests.stockfishchess.org/tests/view/5c144d110ebc5902ba11e4af and an older test of mine http://tests.stockfishchess.org/tests/view/5c0402810ebc5902bcee1fc8 Non functional change.
This commit is contained in:
parent
4e2bb8fa44
commit
64a6138d37
1 changed files with 2 additions and 1 deletions
|
@ -274,6 +274,7 @@ namespace {
|
|||
kingRing[Us] |= shift<EAST>(kingRing[Us]);
|
||||
|
||||
kingAttackersCount[Them] = popcount(kingRing[Us] & pe->pawn_attacks(Them));
|
||||
kingRing[Us] &= ~double_pawn_attacks_bb<Us>(pos.pieces(Us, PAWN));
|
||||
kingAttacksCount[Them] = kingAttackersWeight[Them] = 0;
|
||||
}
|
||||
}
|
||||
|
@ -309,7 +310,7 @@ namespace {
|
|||
attackedBy[Us][Pt] |= b;
|
||||
attackedBy[Us][ALL_PIECES] |= b;
|
||||
|
||||
if (b & kingRing[Them] & ~double_pawn_attacks_bb<Them>(pos.pieces(Them, PAWN)))
|
||||
if (b & kingRing[Them])
|
||||
{
|
||||
kingAttackersCount[Us]++;
|
||||
kingAttackersWeight[Us] += KingAttackWeights[Pt];
|
||||
|
|
Loading…
Add table
Reference in a new issue