TVM  0.9.4
Clock.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <tvm/defs.h>
6 
8 
9 #include <cstdint>
10 
11 namespace tvm
12 {
13 
14 class ControlProblem;
15 
27 {
28  friend class ControlProblem;
29 
30 public:
31  SET_OUTPUTS(Clock, Time)
32 
33 
38  Clock(double dt);
39 
41  inline uint64_t ticks() const { return ticks_; }
42 
44  inline double dt() const { return dt_; }
45 
47  void advance();
48 
49 protected:
50  Clock(const Clock &) = default;
51  Clock & operator=(const Clock &) = default;
52  Clock(Clock &&) = default;
53  Clock & operator=(Clock &&) = default;
54 
55 private:
56  const double dt_;
57  uint64_t ticks_ = 0;
58 };
59 } // namespace tvm
#define SET_OUTPUTS(SelfT,...)
Definition: Outputs.h:113
#define TVM_DLLAPI
Definition: api.h:35
Definition: Clock.h:27
Clock & operator=(Clock &&)=default
Clock(const Clock &)=default
Clock & operator=(const Clock &)=default
void advance()
double dt() const
Definition: Clock.h:44
Clock(Clock &&)=default
Definition: ControlProblem.h:33
Definition: Outputs.h:31
Definition: Clock.h:12