- elapsed = ((used2.ru_utime.tv_sec - used1.ru_utime.tv_sec) +
- (used2.ru_stime.tv_sec - used1.ru_stime.tv_sec) +
- (used2.ru_utime.tv_usec - used1.ru_utime.tv_usec) / 1e6 +
- (used2.ru_stime.tv_usec - used1.ru_stime.tv_usec) / 1e6);
- // round to 10ms for safety:
- return 0.01*int(elapsed*100+0.5);
+ return ((used2.ru_utime.tv_sec - used1.ru_utime.tv_sec) +
+ (used2.ru_stime.tv_sec - used1.ru_stime.tv_sec) +
+ (used2.ru_utime.tv_usec - used1.ru_utime.tv_usec) * 1e-6 +
+ (used2.ru_stime.tv_usec - used1.ru_stime.tv_usec) * 1e-6);
+#else
+ if (running())
+ used2 = clock();
+ return double(used2 - used1)/CLOCKS_PER_SEC;
+#endif