Macaulay2 Engine
Loading...
Searching...
No Matches
timing.hpp
Go to the documentation of this file.
1#ifndef __timing_hpp_
2#define __timing_hpp_
3
32
33#include <chrono>
34
35inline std::chrono::steady_clock::time_point timer()
36{
37 return std::chrono::steady_clock::now();
38}
39inline std::chrono::steady_clock::time_point now()
40{
41 return std::chrono::steady_clock::now();
42}
43
44template <typename DurationType>
45long nanoseconds(DurationType time_diff)
46{
47 return std::chrono::duration_cast<std::chrono::nanoseconds>(time_diff)
48 .count();
49}
50
51template <typename DurationType>
52long microseconds(DurationType time_diff)
53{
54 return std::chrono::duration_cast<std::chrono::microseconds>(time_diff)
55 .count();
56}
57
58template <typename DurationType>
59double seconds(DurationType time_diff)
60{
61 return 1.0e-9 *
62 static_cast<double>(
63 std::chrono::duration_cast<std::chrono::nanoseconds>(time_diff)
64 .count());
65}
66
67#define TIME(t, call) \
68 { \
69 auto __now1 = now(); \
70 call; \
71 auto __now2 = now(); \
72 t += nanoseconds(__now2 - __now1); \
73 }
74
75#endif
76// Local Variables:
77// compile-command: "make -C $M2BUILDDIR/Macaulay2/e "
78// indent-tabs-mode: nil
79// End:
long nanoseconds(DurationType time_diff)
Definition timing.hpp:45
long microseconds(DurationType time_diff)
Definition timing.hpp:52
std::chrono::steady_clock::time_point now()
Definition timing.hpp:39
std::chrono::steady_clock::time_point timer()
Definition timing.hpp:35
double seconds(DurationType time_diff)
Definition timing.hpp:59