- optimumTime = std::max<int>(minThinkingTime, opt_scale * timeLeft);
- maximumTime = std::min(0.8 * limits.time[us] - moveOverhead, max_scale * optimumTime);
+ optimumTime = TimePoint(optScale * timeLeft);
+ maximumTime = TimePoint(std::min(0.8 * limits.time[us] - moveOverhead, maxScale * optimumTime));
+
+ if (Stockfish::Search::Limits.use_time_management())
+ {
+ int strength = std::log( std::max(1, int(optimumTime * Threads.size() / 10))) * 60;
+ tempoNNUE = std::clamp( (strength + 264) / 24, 18, 30);
+ }
+ else
+ tempoNNUE = 28; // default for no time given