1
0
Fork 0

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
pull/782/head
lucasart 2016-08-30 20:27:05 +08:00 committed by Marco Costalba
parent 7f2eb10e93
commit 13b4444d9e
3 changed files with 1 additions and 6 deletions

View File

@ -40,11 +40,8 @@ namespace Zobrist {
Key enpassant[FILE_NB];
Key castling[CASTLING_RIGHT_NB];
Key side;
Key exclusion;
}
Key Position::exclusion_key() const { return st->key ^ Zobrist::exclusion; }
namespace {
const string PieceToChar(" PNBRQK pnbrqk");
@ -132,7 +129,6 @@ void Position::init() {
}
Zobrist::side = rng.rand<Key>();
Zobrist::exclusion = rng.rand<Key>();
}

View File

@ -150,7 +150,6 @@ public:
// Accessing hash keys
Key key() const;
Key key_after(Move m) const;
Key exclusion_key() const;
Key material_key() const;
Key pawn_key() const;

View File

@ -622,7 +622,7 @@ namespace {
// search to overwrite a previous full search TT value, so we use a different
// position key in case of an excluded move.
excludedMove = ss->excludedMove;
posKey = excludedMove ? pos.exclusion_key() : pos.key();
posKey = pos.key() ^ Key(excludedMove);
tte = TT.probe(posKey, ttHit);
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = rootNode ? thisThread->rootMoves[thisThread->PVIdx].pv[0]