+/// The SearchLimits struct stores information sent by GUI about available time
+/// to search the current move, maximum depth/time, if we are in analysis mode
+/// or if we have to ponder while is our opponent's side to move.
+
+struct SearchLimits {
+
+ SearchLimits() {}
+ SearchLimits(int t, int i, int mtg, int mt, int md, int mn, bool inf, bool pon)
+ : time(t), increment(i), movesToGo(mtg), maxTime(mt), maxDepth(md),
+ maxNodes(mn), infinite(inf), ponder(pon) {}
+
+ bool useTimeManagement() const { return !(maxTime | maxDepth | maxNodes | int(infinite)); }
+
+ int time, increment, movesToGo, maxTime, maxDepth, maxNodes;
+ bool infinite, ponder;
+};
+
+extern void init_search();