Skip to content

Commit

Permalink
Simplify Zobrist keys for captures
Browse files Browse the repository at this point in the history
The Zobrist keys for NO_PIECE are 0 so no need to special case captures.
Also the TranspositionTable reference passed to do_null_move() can be
const.

STC Simplification:
https://tests.stockfishchess.org/tests/view/6764a79a86d5ee47d9544005
LLR: 2.96 (-2.94,2.94) <-1.75,0.25>
Total: 114240 W: 29654 L: 29523 D: 55063
Ptnml(0-2): 329, 12360, 31620, 12473, 338

closes #5731

No functional change
  • Loading branch information
mstembera authored and Disservin committed Dec 22, 2024
1 parent 79261be commit f656fdf
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 6 deletions.
7 changes: 2 additions & 5 deletions src/position.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1012,7 +1012,7 @@ void Position::do_castling(Color us, Square from, Square& to, Square& rfrom, Squ

// Used to do a "null move": it flips
// the side to move without executing any move on the board.
void Position::do_null_move(StateInfo& newSt, TranspositionTable& tt) {
void Position::do_null_move(StateInfo& newSt, const TranspositionTable& tt) {

assert(!checkers());
assert(&newSt != st);
Expand Down Expand Up @@ -1071,10 +1071,7 @@ Key Position::key_after(Move m) const {
Piece captured = piece_on(to);
Key k = st->key ^ Zobrist::side;

if (captured)
k ^= Zobrist::psq[captured][to];

k ^= Zobrist::psq[pc][to] ^ Zobrist::psq[pc][from];
k ^= Zobrist::psq[captured][to] ^ Zobrist::psq[pc][to] ^ Zobrist::psq[pc][from];

return (captured || type_of(pc) == PAWN) ? k : adjust_key50<true>(k);
}
Expand Down
2 changes: 1 addition & 1 deletion src/position.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ class Position {
void do_move(Move m, StateInfo& newSt);
void do_move(Move m, StateInfo& newSt, bool givesCheck);
void undo_move(Move m);
void do_null_move(StateInfo& newSt, TranspositionTable& tt);
void do_null_move(StateInfo& newSt, const TranspositionTable& tt);
void undo_null_move();

// Static Exchange Evaluation
Expand Down

0 comments on commit f656fdf

Please sign in to comment.