mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Change exclusion key setup
Should depend on which move is excluded. This allow us to remove the dedicated Position::exclusion_key(). STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 59814 W: 11136 L: 11083 D: 37595 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 31023 W: 4187 L: 4080 D: 22756 bench 7553379
This commit is contained in:
parent
7f2eb10e93
commit
13b4444d9e
3 changed files with 1 additions and 6 deletions
|
@ -40,11 +40,8 @@ namespace Zobrist {
|
||||||
Key enpassant[FILE_NB];
|
Key enpassant[FILE_NB];
|
||||||
Key castling[CASTLING_RIGHT_NB];
|
Key castling[CASTLING_RIGHT_NB];
|
||||||
Key side;
|
Key side;
|
||||||
Key exclusion;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Key Position::exclusion_key() const { return st->key ^ Zobrist::exclusion; }
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const string PieceToChar(" PNBRQK pnbrqk");
|
const string PieceToChar(" PNBRQK pnbrqk");
|
||||||
|
@ -132,7 +129,6 @@ void Position::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
Zobrist::side = rng.rand<Key>();
|
Zobrist::side = rng.rand<Key>();
|
||||||
Zobrist::exclusion = rng.rand<Key>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -150,7 +150,6 @@ public:
|
||||||
// Accessing hash keys
|
// Accessing hash keys
|
||||||
Key key() const;
|
Key key() const;
|
||||||
Key key_after(Move m) const;
|
Key key_after(Move m) const;
|
||||||
Key exclusion_key() const;
|
|
||||||
Key material_key() const;
|
Key material_key() const;
|
||||||
Key pawn_key() const;
|
Key pawn_key() const;
|
||||||
|
|
||||||
|
|
|
@ -622,7 +622,7 @@ namespace {
|
||||||
// search to overwrite a previous full search TT value, so we use a different
|
// search to overwrite a previous full search TT value, so we use a different
|
||||||
// position key in case of an excluded move.
|
// position key in case of an excluded move.
|
||||||
excludedMove = ss->excludedMove;
|
excludedMove = ss->excludedMove;
|
||||||
posKey = excludedMove ? pos.exclusion_key() : pos.key();
|
posKey = pos.key() ^ Key(excludedMove);
|
||||||
tte = TT.probe(posKey, ttHit);
|
tte = TT.probe(posKey, ttHit);
|
||||||
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
|
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
|
||||||
ttMove = rootNode ? thisThread->rootMoves[thisThread->PVIdx].pv[0]
|
ttMove = rootNode ? thisThread->rootMoves[thisThread->PVIdx].pv[0]
|
||||||
|
|
Loading…
Add table
Reference in a new issue