Skip to content

Commit f9390b4

Browse files
SMP SPSA session 200k games (#1072)
Elo | 3.56 +- 2.49 (95%) SPRT | 40.0+0.40s Threads=6 Hash=512MB LLR | 2.97 (-2.25, 2.89) [0.00, 4.00] Games | N: 15336 W: 3936 L: 3779 D: 7621 Penta | [1, 1491, 4527, 1648, 1] https://recklesschess.space/test/15196/ Bench: 3204302
1 parent b36d7da commit f9390b4

4 files changed

Lines changed: 127 additions & 131 deletions

File tree

src/evaluation.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::{thread::ThreadData, types::Score};
22

33
pub fn correct_eval(td: &ThreadData, raw_eval: i32, correction_value: i32) -> i32 {
4-
let mut eval = (raw_eval * (21454 + td.board.material())
5-
+ td.optimism[td.board.side_to_move()] * (1543 + td.board.material()))
6-
/ 26663;
4+
let mut eval = (raw_eval * (21032 + td.board.material())
5+
+ td.optimism[td.board.side_to_move()] * (1548 + td.board.material()))
6+
/ 27015;
77

88
eval = eval * (200 - td.board.fiftymove_clock() as i32) / 200;
99

src/movepick.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ impl MovePicker {
6161
if self.stage == Stage::GoodNoisy {
6262
while !self.list.is_empty() {
6363
let entry = self.get_best_entry();
64-
let threshold = self.threshold.unwrap_or_else(|| -entry.score / 39 + 107);
64+
let threshold = self.threshold.unwrap_or_else(|| -entry.score / 47 + 116);
6565
if (self.tt_move.is_quiet() && self.noisy_count > 2) || !td.board.see(entry.mv, threshold) {
6666
self.bad_noisy.push(entry.mv);
6767
continue;
@@ -133,9 +133,9 @@ impl MovePicker {
133133
let captured = td.board.type_on(mv.capture_sq());
134134
let pt = td.board.type_on(mv.from());
135135

136-
entry.score = 15704 * captured.value() / 1024
136+
entry.score = 14232 * captured.value() / 1024
137137
+ td.noisy_history.get(threats, td.board.moved_piece(mv), mv.to(), captured)
138-
+ 4057 * (mv.is_promotion() && mv.promo_piece_type() == PieceType::Queen) as i32
138+
+ 4558 * (mv.is_promotion() && mv.promo_piece_type() == PieceType::Queen) as i32
139139
+ (200000 - 20000 * pt as i32) * td.board.in_check() as i32;
140140
}
141141
}
@@ -159,7 +159,7 @@ impl MovePicker {
159159
[Bitboard(0), pawn_threats, pawn_threats, minor_threats, rook_threats, Bitboard(0)]
160160
};
161161

162-
let escape = [0, 8297, 8292, 13144, 21081, 0];
162+
let escape = [0, 8854, 8170, 14051, 20357, 0];
163163

164164
// safe squares where we can attack an opponent piece
165165
let offense = {
@@ -197,16 +197,16 @@ impl MovePicker {
197197
let mv = entry.mv;
198198
let pt = td.board.type_on(mv.from());
199199

200-
entry.score = 1973 * td.quiet_history.get(threats, side, mv) / 1024
201-
+ 1573 * td.conthist(ply, 1, mv) / 1024
202-
+ 956 * td.conthist(ply, 2, mv) / 1024
203-
+ 987 * td.conthist(ply, 4, mv) / 1024
204-
+ 944 * td.conthist(ply, 6, mv) / 1024
200+
entry.score = 1763 * td.quiet_history.get(threats, side, mv) / 1024
201+
+ 1614 * td.conthist(ply, 1, mv) / 1024
202+
+ 1066 * td.conthist(ply, 2, mv) / 1024
203+
+ 1086 * td.conthist(ply, 4, mv) / 1024
204+
+ 1051 * td.conthist(ply, 6, mv) / 1024
205205
+ escape[pt] * threatened[pt].contains(mv.from()) as i32
206-
+ 9503 * td.board.checking_squares(pt).contains(mv.to()) as i32
207-
- 8074 * threatened[pt].contains(mv.to()) as i32
208-
+ 5182 * offense[pt].contains(mv.to()) as i32
209-
- 4255 * wall_pawns.contains(mv.from()) as i32;
206+
+ 10723 * td.board.checking_squares(pt).contains(mv.to()) as i32
207+
- 8875 * threatened[pt].contains(mv.to()) as i32
208+
+ 3446 * offense[pt].contains(mv.to()) as i32
209+
- 4494 * wall_pawns.contains(mv.from()) as i32;
210210
}
211211
}
212212
}

0 commit comments

Comments
 (0)