1 #ifdef ELAPSED_TIME_IN_SECONDS
2 #undef ELAPSED_TIME_IN_SECONDS
3 #endif
4 
5 #ifdef ELAPSED_TIME_IN_uSECONDS
6 #undef ELAPSED_TIME_IN_uSECONDS
7 #endif
8 
9 #ifdef WIN32
10 // include headers to use gettimeofday
11 #else
12 	#ifdef __GNUC__
13 	#include <sys/time.h>
14 	#include <sys/resource.h>
15 	#endif
16 #endif
17 
18 #ifdef __GNUC__
19 	#ifndef __CMPH_TIME_H__
20 		#define __CMPH_TIME_H__
elapsed_time_in_seconds(double * elapsed_time)21 		static inline void elapsed_time_in_seconds(double * elapsed_time)
22 		{
23 			struct timeval e_time;
24 			if (gettimeofday(&e_time, NULL) < 0) {
25 				return;
26 			}
27 			*elapsed_time =  (double)e_time.tv_sec + ((double)e_time.tv_usec/1000000.0);
28 		}
dummy_elapsed_time_in_seconds()29 		static inline void dummy_elapsed_time_in_seconds()
30 		{
31 		}
elapsed_time_in_useconds(cmph_uint64 * elapsed_time)32 		static inline void elapsed_time_in_useconds(cmph_uint64 * elapsed_time)
33 		{
34 			struct timeval e_time;
35 			if (gettimeofday(&e_time, NULL) < 0) {
36 				return;
37 			}
38 			*elapsed_time =  (cmph_uint64)(e_time.tv_sec*1000000 + e_time.tv_usec);
39 		}
dummy_elapsed_time_in_useconds()40 		static inline void dummy_elapsed_time_in_useconds()
41 		{
42 		}
43 	#endif
44 #endif
45 
46 #ifdef CMPH_TIMING
47 	  #ifdef __GNUC__
48 		  #define ELAPSED_TIME_IN_SECONDS elapsed_time_in_seconds
49 		  #define ELAPSED_TIME_IN_uSECONDS elapsed_time_in_useconds
50 	  #else
51 		  #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds
52 		  #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds
53 	  #endif
54 #else
55 	  #ifdef __GNUC__
56 		  #define ELAPSED_TIME_IN_SECONDS
57 		  #define ELAPSED_TIME_IN_uSECONDS
58 	  #else
59 		  #define ELAPSED_TIME_IN_SECONDS dummy_elapsed_time_in_seconds
60 		  #define ELAPSED_TIME_IN_uSECONDS dummy_elapsed_time_in_useconds
61 	  #endif
62 #endif
63