Merge branch 'master' into clusterMergeMaster16

This commit is contained in:
Joost VandeVondele
2022-12-04 16:43:04 +01:00
20 changed files with 825 additions and 506 deletions
+8 -6
View File
@@ -226,11 +226,14 @@ Thread* ThreadPool::get_best_thread() const {
minScore = std::min(minScore, th->rootMoves[0].score);
// Vote according to score and depth, and select the best thread
for (Thread* th : *this)
{
votes[th->rootMoves[0].pv[0]] +=
(th->rootMoves[0].score - minScore + 14) * int(th->completedDepth);
auto thread_value = [minScore](Thread* th) {
return (th->rootMoves[0].score - minScore + 14) * int(th->completedDepth);
};
for (Thread* th : *this)
votes[th->rootMoves[0].pv[0]] += thread_value(th);
for (Thread* th : *this)
if (abs(bestThread->rootMoves[0].score) >= VALUE_TB_WIN_IN_MAX_PLY)
{
// Make sure we pick the shortest mate / TB conversion or stave off mate the longest
@@ -241,9 +244,8 @@ Thread* ThreadPool::get_best_thread() const {
|| ( th->rootMoves[0].score > VALUE_TB_LOSS_IN_MAX_PLY
&& ( votes[th->rootMoves[0].pv[0]] > votes[bestThread->rootMoves[0].pv[0]]
|| ( votes[th->rootMoves[0].pv[0]] == votes[bestThread->rootMoves[0].pv[0]]
&& th->rootMoves[0].pv.size() > bestThread->rootMoves[0].pv.size()))))
&& thread_value(th) > thread_value(bestThread)))))
bestThread = th;
}
return bestThread;
}