mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Introduce capture history table for capture move sorting
Introduce capture move history table indexed by moved piece, target square and captured piece type for sorting capture moves. STC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 11374 W: 2096 L: 1924 D: 7354 http://tests.stockfishchess.org/tests/view/59fac8dc0ebc590ccbb89fc5 LTC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 24791 W: 3196 L: 3001 D: 18594 http://tests.stockfishchess.org/tests/view/59fae4d20ebc590ccbb89fd9 Bench: 5536775
This commit is contained in:
committed by
Marco Costalba
parent
486c8175c4
commit
4bc11984fc
@@ -68,8 +68,8 @@ namespace {
|
||||
|
||||
/// MovePicker constructor for the main search
|
||||
MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHistory* mh,
|
||||
const PieceToHistory** ch, Move cm, Move* killers_p)
|
||||
: pos(p), mainHistory(mh), contHistory(ch), countermove(cm),
|
||||
const CapturePieceToHistory* cph, const PieceToHistory** ch, Move cm, Move* killers_p)
|
||||
: pos(p), mainHistory(mh), captureHistory(cph), contHistory(ch), countermove(cm),
|
||||
killers{killers_p[0], killers_p[1]}, depth(d){
|
||||
|
||||
assert(d > DEPTH_ZERO);
|
||||
@@ -80,8 +80,8 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHist
|
||||
}
|
||||
|
||||
/// MovePicker constructor for quiescence search
|
||||
MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHistory* mh, Square s)
|
||||
: pos(p), mainHistory(mh) {
|
||||
MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHistory* mh, const CapturePieceToHistory* cph, Square s)
|
||||
: pos(p), mainHistory(mh), captureHistory(cph) {
|
||||
|
||||
assert(d <= DEPTH_ZERO);
|
||||
|
||||
@@ -107,8 +107,8 @@ MovePicker::MovePicker(const Position& p, Move ttm, Depth d, const ButterflyHist
|
||||
|
||||
/// MovePicker constructor for ProbCut: we generate captures with SEE higher
|
||||
/// than or equal to the given threshold.
|
||||
MovePicker::MovePicker(const Position& p, Move ttm, Value th)
|
||||
: pos(p), threshold(th) {
|
||||
MovePicker::MovePicker(const Position& p, Move ttm, Value th, const CapturePieceToHistory* cph)
|
||||
: pos(p), captureHistory(cph), threshold(th) {
|
||||
|
||||
assert(!pos.checkers());
|
||||
|
||||
@@ -132,7 +132,7 @@ void MovePicker::score() {
|
||||
for (auto& m : *this)
|
||||
if (Type == CAPTURES)
|
||||
m.value = PieceValue[MG][pos.piece_on(to_sq(m))]
|
||||
- Value(200 * relative_rank(pos.side_to_move(), to_sq(m)));
|
||||
+ Value((*captureHistory)[pos.moved_piece(m)][to_sq(m)][type_of(pos.piece_on(to_sq(m)))]);
|
||||
|
||||
else if (Type == QUIETS)
|
||||
m.value = (*mainHistory)[pos.side_to_move()][from_to(m)]
|
||||
|
||||
Reference in New Issue
Block a user