mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Move pawnsOnSquares to Position (#2100)
We can remove the values in Pawns if we just use the piece arrays in Position. This reduces the size of a pawn entry. This simplification passed individually, and in concert with ps_passedcount100 (removes passedCount storage in pawns.). STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 19957 W: 4529 L: 4404 D: 11024 http://tests.stockfishchess.org/tests/view/5cb3c2d00ebc5925cf016f0d Combo STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 17368 W: 3925 L: 3795 D: 9648 http://tests.stockfishchess.org/tests/view/5cb3d3510ebc5925cf01709a This is a non-functional simplification.
This commit is contained in:
parent
76777b663a
commit
3b46df546d
4 changed files with 6 additions and 7 deletions
|
@ -328,7 +328,7 @@ namespace {
|
||||||
// bishop, bigger when the center files are blocked with pawns.
|
// bishop, bigger when the center files are blocked with pawns.
|
||||||
Bitboard blocked = pos.pieces(Us, PAWN) & shift<Down>(pos.pieces());
|
Bitboard blocked = pos.pieces(Us, PAWN) & shift<Down>(pos.pieces());
|
||||||
|
|
||||||
score -= BishopPawns * pe->pawns_on_same_color_squares(Us, s)
|
score -= BishopPawns * pos.pawns_on_same_color_squares(Us, s)
|
||||||
* (1 + popcount(blocked & CenterFiles));
|
* (1 + popcount(blocked & CenterFiles));
|
||||||
|
|
||||||
// Bonus for bishop on a long diagonal which can "see" both center squares
|
// Bonus for bishop on a long diagonal which can "see" both center squares
|
||||||
|
|
|
@ -79,8 +79,6 @@ namespace {
|
||||||
e->passedPawns[Us] = e->pawnAttacksSpan[Us] = e->weakUnopposed[Us] = 0;
|
e->passedPawns[Us] = e->pawnAttacksSpan[Us] = e->weakUnopposed[Us] = 0;
|
||||||
e->kingSquares[Us] = SQ_NONE;
|
e->kingSquares[Us] = SQ_NONE;
|
||||||
e->pawnAttacks[Us] = pawn_attacks_bb<Us>(ourPawns);
|
e->pawnAttacks[Us] = pawn_attacks_bb<Us>(ourPawns);
|
||||||
e->pawnsOnSquares[Us][BLACK] = popcount(ourPawns & DarkSquares);
|
|
||||||
e->pawnsOnSquares[Us][WHITE] = pos.count<PAWN>(Us) - e->pawnsOnSquares[Us][BLACK];
|
|
||||||
|
|
||||||
// Loop through all pawns of the current color and score each pawn
|
// Loop through all pawns of the current color and score each pawn
|
||||||
while ((s = *pl++) != SQ_NONE)
|
while ((s = *pl++) != SQ_NONE)
|
||||||
|
|
|
@ -40,10 +40,6 @@ struct Entry {
|
||||||
int weak_unopposed(Color c) const { return weakUnopposed[c]; }
|
int weak_unopposed(Color c) const { return weakUnopposed[c]; }
|
||||||
int passed_count() const { return popcount(passedPawns[WHITE] | passedPawns[BLACK]); };
|
int passed_count() const { return popcount(passedPawns[WHITE] | passedPawns[BLACK]); };
|
||||||
|
|
||||||
int pawns_on_same_color_squares(Color c, Square s) const {
|
|
||||||
return pawnsOnSquares[c][bool(DarkSquares & s)];
|
|
||||||
}
|
|
||||||
|
|
||||||
template<Color Us>
|
template<Color Us>
|
||||||
Score king_safety(const Position& pos) {
|
Score king_safety(const Position& pos) {
|
||||||
return kingSquares[Us] == pos.square<KING>(Us) && castlingRights[Us] == pos.castling_rights(Us)
|
return kingSquares[Us] == pos.square<KING>(Us) && castlingRights[Us] == pos.castling_rights(Us)
|
||||||
|
|
|
@ -129,6 +129,7 @@ public:
|
||||||
// Piece specific
|
// Piece specific
|
||||||
bool pawn_passed(Color c, Square s) const;
|
bool pawn_passed(Color c, Square s) const;
|
||||||
bool opposite_bishops() const;
|
bool opposite_bishops() const;
|
||||||
|
int pawns_on_same_color_squares(Color c, Square s) const;
|
||||||
|
|
||||||
// Doing and undoing moves
|
// Doing and undoing moves
|
||||||
void do_move(Move m, StateInfo& newSt);
|
void do_move(Move m, StateInfo& newSt);
|
||||||
|
@ -323,6 +324,10 @@ inline bool Position::advanced_pawn_push(Move m) const {
|
||||||
&& relative_rank(sideToMove, from_sq(m)) > RANK_4;
|
&& relative_rank(sideToMove, from_sq(m)) > RANK_4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline int Position::pawns_on_same_color_squares(Color c, Square s) const {
|
||||||
|
return popcount(pieces(c, PAWN) & ((DarkSquares & s) ? DarkSquares : ~DarkSquares));
|
||||||
|
}
|
||||||
|
|
||||||
inline Key Position::key() const {
|
inline Key Position::key() const {
|
||||||
return st->key;
|
return st->key;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue