Skip to content

Commit cabd512

Browse files
zamarmcostalba
authored andcommitted
Fix +M0 score when low on time
When time remaining is less than Emergency Move Time, we won't even complete one iteration and engine reports a stale +M0 score. To reproduce run "go wtime 10" info depth 1 seldepth 1 score mate 0 upperbound nodes 2 nps 500 time 4 multipv 1 pv a2a3 info nodes 2 time 4 bestmove a2a3 ponder (none) This patch fixes the issue. Tested by Binky at very short TC: 0.05+0.05 ELO: 5.96 +-12.9 (95%) LOS: 81.7% Total: 1458 W: 394 L: 369 D: 695 And at a bit longer TC: ELO: 1.56 +-3.7 (95%) LOS: 79.8% Total: 16511 W: 3983 L: 3909 D: 8619 bench: 7804908
1 parent 40c863d commit cabd512

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/timeman.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void TimeManager::init(const Search::LimitsType& limits, int currentPly, Color u
9292

9393
// Initialize all to maximum values but unstablePVExtraTime that is reset
9494
unstablePVExtraTime = 0;
95-
optimumSearchTime = maximumSearchTime = limits.time[us];
95+
optimumSearchTime = maximumSearchTime = std::max(limits.time[us], minThinkingTime);
9696

9797
// We calculate optimum time usage for different hypothetical "moves to go"-values and choose the
9898
// minimum of calculated search time values. Usually the greatest hypMTG gives the minimum values.

0 commit comments

Comments
 (0)