mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Add followup moves history for move ordering
STC: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 7955 W: 1538 L: 1378 D: 5039 LTC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 5323 W: 778 L: 642 D: 3903 Bench: 8261839 Resolves #599
This commit is contained in:
committed by
Joona Kiiski
parent
e1a7d135b2
commit
a273b6ef8c
@@ -870,10 +870,12 @@ namespace {
|
||||
moves_loop: // When in check search starts from here
|
||||
|
||||
Square prevSq = to_sq((ss-1)->currentMove);
|
||||
Square ownPrevSq = to_sq((ss-2)->currentMove);
|
||||
Move cm = thisThread->counterMoves[pos.piece_on(prevSq)][prevSq];
|
||||
const CounterMoveStats& cmh = CounterMoveHistory[pos.piece_on(prevSq)][prevSq];
|
||||
const CounterMoveStats& fmh = CounterMoveHistory[pos.piece_on(ownPrevSq)][ownPrevSq];
|
||||
|
||||
MovePicker mp(pos, ttMove, depth, thisThread->history, cmh, cm, ss);
|
||||
MovePicker mp(pos, ttMove, depth, thisThread->history, cmh, fmh, cm, ss);
|
||||
CheckInfo ci(pos);
|
||||
value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc
|
||||
improving = ss->staticEval >= (ss-2)->staticEval
|
||||
@@ -1442,7 +1444,9 @@ moves_loop: // When in check search starts from here
|
||||
Value bonus = Value((depth / ONE_PLY) * (depth / ONE_PLY) + depth / ONE_PLY - 1);
|
||||
|
||||
Square prevSq = to_sq((ss-1)->currentMove);
|
||||
Square ownPrevSq = to_sq((ss-2)->currentMove);
|
||||
CounterMoveStats& cmh = CounterMoveHistory[pos.piece_on(prevSq)][prevSq];
|
||||
CounterMoveStats& fmh = CounterMoveHistory[pos.piece_on(ownPrevSq)][ownPrevSq];
|
||||
Thread* thisThread = pos.this_thread();
|
||||
|
||||
thisThread->history.update(pos.moved_piece(move), to_sq(move), bonus);
|
||||
@@ -1453,6 +1457,9 @@ moves_loop: // When in check search starts from here
|
||||
cmh.update(pos.moved_piece(move), to_sq(move), bonus);
|
||||
}
|
||||
|
||||
if (is_ok((ss-2)->currentMove))
|
||||
fmh.update(pos.moved_piece(move), to_sq(move), bonus);
|
||||
|
||||
// Decrease all the other played quiet moves
|
||||
for (int i = 0; i < quietsCnt; ++i)
|
||||
{
|
||||
@@ -1460,6 +1467,9 @@ moves_loop: // When in check search starts from here
|
||||
|
||||
if (is_ok((ss-1)->currentMove))
|
||||
cmh.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);
|
||||
|
||||
if (is_ok((ss-2)->currentMove))
|
||||
fmh.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);
|
||||
}
|
||||
|
||||
// Extra penalty for a quiet TT move in previous ply when it gets refuted
|
||||
|
||||
Reference in New Issue
Block a user