| 241 | } |
| 242 | |
| 243 | double timer() { |
| 244 | #if defined(__linux__) || defined(__FreeBSD__) |
| 245 | struct timespec ts; |
| 246 | clock_gettime(CLOCK_MONOTONIC, &ts); |
| 247 | return double(ts.tv_sec) + (ts.tv_nsec * 1e-9); |
| 248 | #elif defined(__APPLE__) |
| 249 | mach_timebase_info_data_t timebase_info; |
| 250 | mach_timebase_info(&timebase_info); |
| 251 | return ((mach_absolute_time() * timebase_info.numer) / timebase_info.denom) * 1e-9; |
| 252 | #else |
| 253 | #error Port me! |
| 254 | #endif |
| 255 | }; |
| 256 | |
| 257 | int randomInt(int min, int max) { |
| 258 | static std::random_device rd; |
no outgoing calls