mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-23 02:27:00 +08:00
Retire zobMaterial[]
Use zobrist[] array to compute material key. Space save of 2KB in L1 cache. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -47,7 +47,6 @@ using std::string;
|
|||||||
Key Position::zobrist[2][8][64];
|
Key Position::zobrist[2][8][64];
|
||||||
Key Position::zobEp[64];
|
Key Position::zobEp[64];
|
||||||
Key Position::zobCastle[16];
|
Key Position::zobCastle[16];
|
||||||
Key Position::zobMaterial[2][8][16];
|
|
||||||
Key Position::zobSideToMove;
|
Key Position::zobSideToMove;
|
||||||
Key Position::zobExclusion;
|
Key Position::zobExclusion;
|
||||||
|
|
||||||
@@ -833,8 +832,8 @@ void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveI
|
|||||||
pieceCount[us][PAWN]--;
|
pieceCount[us][PAWN]--;
|
||||||
|
|
||||||
// Update material key
|
// Update material key
|
||||||
st->materialKey ^= zobMaterial[us][PAWN][pieceCount[us][PAWN]];
|
st->materialKey ^= zobrist[us][PAWN][pieceCount[us][PAWN]];
|
||||||
st->materialKey ^= zobMaterial[us][promotion][pieceCount[us][promotion]-1];
|
st->materialKey ^= zobrist[us][promotion][pieceCount[us][promotion]-1];
|
||||||
|
|
||||||
// Update piece lists, move the last pawn at index[to] position
|
// Update piece lists, move the last pawn at index[to] position
|
||||||
// and shrink the list. Add a new promotion piece to the list.
|
// and shrink the list. Add a new promotion piece to the list.
|
||||||
@@ -936,7 +935,7 @@ void Position::do_capture_move(Key& key, PieceType capture, Color them, Square t
|
|||||||
pieceCount[them][capture]--;
|
pieceCount[them][capture]--;
|
||||||
|
|
||||||
// Update material hash key
|
// Update material hash key
|
||||||
st->materialKey ^= zobMaterial[them][capture][pieceCount[them][capture]];
|
st->materialKey ^= zobrist[them][capture][pieceCount[them][capture]];
|
||||||
|
|
||||||
// Update piece list, move the last piece at index[capsq] position
|
// Update piece list, move the last piece at index[capsq] position
|
||||||
//
|
//
|
||||||
@@ -1599,7 +1598,7 @@ Key Position::compute_material_key() const {
|
|||||||
{
|
{
|
||||||
int count = piece_count(c, pt);
|
int count = piece_count(c, pt);
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
result ^= zobMaterial[c][pt][i];
|
result ^= zobrist[c][pt][i];
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1752,15 +1751,6 @@ void Position::init_zobrist() {
|
|||||||
zobCastle[i] = genrand_int64();
|
zobCastle[i] = genrand_int64();
|
||||||
|
|
||||||
zobSideToMove = genrand_int64();
|
zobSideToMove = genrand_int64();
|
||||||
|
|
||||||
for (int i = 0; i < 2; i++)
|
|
||||||
for (int j = 0; j < 8; j++)
|
|
||||||
for (int k = 0; k < 8; k++)
|
|
||||||
zobMaterial[i][j][k] = Key(genrand_int64());
|
|
||||||
|
|
||||||
for (int i = 0; i < 8; i++)
|
|
||||||
zobMaterial[0][KING][i] = zobMaterial[1][KING][i] = Key(0ULL);
|
|
||||||
|
|
||||||
zobExclusion = genrand_int64();
|
zobExclusion = genrand_int64();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -334,7 +334,6 @@ private:
|
|||||||
static Key zobrist[2][8][64];
|
static Key zobrist[2][8][64];
|
||||||
static Key zobEp[64];
|
static Key zobEp[64];
|
||||||
static Key zobCastle[16];
|
static Key zobCastle[16];
|
||||||
static Key zobMaterial[2][8][16];
|
|
||||||
static Key zobSideToMove;
|
static Key zobSideToMove;
|
||||||
static Score PieceSquareTable[16][64];
|
static Score PieceSquareTable[16][64];
|
||||||
static Key zobExclusion;
|
static Key zobExclusion;
|
||||||
|
|||||||
Reference in New Issue
Block a user