mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 00:26:33 +08:00
Use Color-From-To history stats to help sort moves
STC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 33502 W: 6498 L: 6223 D: 20781 http://tests.stockfishchess.org/tests/view/578abb940ebc5972faa169e2 LTC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 50782 W: 7124 L: 6832 D: 36826 http://tests.stockfishchess.org/tests/view/578b8e5d0ebc5972faa169fd LTC: (Sanity test against latest master) LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 32759 W: 4600 L: 4370 D: 23789 http://tests.stockfishchess.org/tests/view/5798b7d30ebc591c761f5b72 bench: 6985912 P.S. Thanks @mstembera for rewriting my code to make it smp compatible. A BIG thank you!
This commit is contained in:
committed by
Marco Costalba
parent
85924db496
commit
b3525fa9ea
@@ -142,16 +142,20 @@ template<>
|
||||
void MovePicker::score<QUIETS>() {
|
||||
|
||||
const HistoryStats& history = pos.this_thread()->history;
|
||||
const FromToStats& fromTo = pos.this_thread()->fromTo;
|
||||
|
||||
const CounterMoveStats* cm = (ss-1)->counterMoves;
|
||||
const CounterMoveStats* fm = (ss-2)->counterMoves;
|
||||
const CounterMoveStats* f2 = (ss-4)->counterMoves;
|
||||
|
||||
Color c = pos.side_to_move();
|
||||
|
||||
for (auto& m : *this)
|
||||
m.value = history[pos.moved_piece(m)][to_sq(m)]
|
||||
+ (cm ? (*cm)[pos.moved_piece(m)][to_sq(m)] : VALUE_ZERO)
|
||||
+ (fm ? (*fm)[pos.moved_piece(m)][to_sq(m)] : VALUE_ZERO)
|
||||
+ (f2 ? (*f2)[pos.moved_piece(m)][to_sq(m)] : VALUE_ZERO);
|
||||
+ (f2 ? (*f2)[pos.moved_piece(m)][to_sq(m)] : VALUE_ZERO)
|
||||
+ fromTo.get(c, m);
|
||||
}
|
||||
|
||||
template<>
|
||||
@@ -160,6 +164,8 @@ void MovePicker::score<EVASIONS>() {
|
||||
// by history value, then bad captures and quiet moves with a negative SEE ordered
|
||||
// by SEE value.
|
||||
const HistoryStats& history = pos.this_thread()->history;
|
||||
const FromToStats& fromTo = pos.this_thread()->fromTo;
|
||||
Color c = pos.side_to_move();
|
||||
Value see;
|
||||
|
||||
for (auto& m : *this)
|
||||
@@ -170,7 +176,7 @@ void MovePicker::score<EVASIONS>() {
|
||||
m.value = PieceValue[MG][pos.piece_on(to_sq(m))]
|
||||
- Value(type_of(pos.moved_piece(m))) + HistoryStats::Max;
|
||||
else
|
||||
m.value = history[pos.moved_piece(m)][to_sq(m)];
|
||||
m.value = history[pos.moved_piece(m)][to_sq(m)] + fromTo.get(c, m);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user