X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Ftimeman.h;h=fe5e0abff0b4e7bdfb26d67db5bfa287ecb79283;hp=551d73854fbf2763a644c73d237fbf994687f77c;hb=5d1b92e8f9836e1d403bcf60653dcf6b059c8720;hpb=6661a3154152ab448b1dc11d882586976f616f92 diff --git a/src/timeman.h b/src/timeman.h index 551d7385..fe5e0abf 100644 --- a/src/timeman.h +++ b/src/timeman.h @@ -20,19 +20,23 @@ #ifndef TIMEMAN_H_INCLUDED #define TIMEMAN_H_INCLUDED +#include "misc.h" + /// The TimeManager class computes the optimal time to think depending on the /// maximum available time, the game move number and other parameters. class TimeManager { public: - void init(const Search::LimitsType& limits, Color us, int ply); + void init(const Search::LimitsType& limits, Color us, int ply, TimePoint now); void pv_instability(double bestMoveChanges) { unstablePvFactor = 1 + bestMoveChanges; } - int available_time() const { return int(optimumSearchTime * unstablePvFactor * 0.76); } - int maximum_time() const { return maximumSearchTime; } + int available_time() const { return int(optimumTime * unstablePvFactor * 0.76); } + int maximum_time() const { return maximumTime; } + int elapsed_time() const { return now() - start; } private: - int optimumSearchTime; - int maximumSearchTime; + TimePoint start; + int optimumTime; + int maximumTime; double unstablePvFactor; };