Skip to content

Commit 6d3c844

Browse files
authored
Merge pull request #3 from DkeRee/CPU-OP
Added CPU Optimization
2 parents a67e83d + 8a09477 commit 6d3c844

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

.cargo/config.toml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[build]
2+
rustflags = ["-C", "target-cpu=native"]

src/search/search_master.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -148,12 +148,20 @@ impl Engine {
148148
return false;
149149
}
150150

151-
pub fn search(&mut self, abort: &AtomicBool, stop_abort: &AtomicBool, board: &Board, mut depth: i32, mut ply: i32, mut alpha: i32, beta: i32, past_positions: &mut Vec<u64>) -> Option<(Option<Move>, Eval)> {
151+
pub fn search(&mut self, abort: &AtomicBool, stop_abort: &AtomicBool, board: &Board, mut depth: i32, mut ply: i32, mut alpha: i32, mut beta: i32, past_positions: &mut Vec<u64>) -> Option<(Option<Move>, Eval)> {
152152
//abort?
153153
if self.searching_depth > 1 && (abort.load(Ordering::Relaxed) || stop_abort.load(Ordering::Relaxed)) {
154154
return None;
155155
}
156156

157+
self.nodes += 1;
158+
159+
//MATE DISTANCE PRUNING
160+
//make sure that alpha is not defaulted to negative infinity
161+
if alpha != -i32::MAX && Score::CHECKMATE_BASE - ply <= alpha {
162+
return Some((None, Eval::new(Score::CHECKMATE_BASE - ply, true)));
163+
}
164+
157165
let in_check = !board.checkers().is_empty();
158166

159167
//search a little deeper if we are in check!
@@ -162,8 +170,6 @@ impl Engine {
162170
depth += 1;
163171
}
164172

165-
self.nodes += 1;
166-
167173
match board.status() {
168174
GameStatus::Won => return Some((None, Eval::new(-Score::CHECKMATE_BASE + ply, true))),
169175
GameStatus::Drawn => return Some((None, Eval::new(Score::DRAW, false))),

0 commit comments

Comments
 (0)