@@ -74,6 +74,9 @@ static void *huge_malloc(BLASLONG size){
74
74
75
75
#if defined(__WIN32__ ) || defined(__WIN64__ ) || !defined(_POSIX_TIMERS )
76
76
struct timeval start , stop ;
77
+ #elif defined(__APPLE__ )
78
+ mach_timebase_info_data_t info ;
79
+ uint64_t start = 0 , stop = 0 ;
77
80
#else
78
81
struct timespec start = { 0 , 0 }, stop = { 0 , 0 };
79
82
#endif
@@ -82,6 +85,9 @@ double getsec()
82
85
{
83
86
#if defined(__WIN32__ ) || defined(__WIN64__ ) || !defined(_POSIX_TIMERS )
84
87
return (double )(stop .tv_sec - start .tv_sec ) + (double )((stop .tv_usec - start .tv_usec )) * 1.e-6 ;
88
+ #elif defined(__APPLE__ )
89
+ mach_timebase_info (& info );
90
+ return (double )(((stop - start ) * info .numer )/info .denom ) * 1.e-9 ;
85
91
#else
86
92
return (double )(stop .tv_sec - start .tv_sec ) + (double )((stop .tv_nsec - start .tv_nsec )) * 1.e-9 ;
87
93
#endif
@@ -90,6 +96,8 @@ double getsec()
90
96
void begin () {
91
97
#if defined(__WIN32__ ) || defined(__WIN64__ ) || !defined(_POSIX_TIMERS )
92
98
gettimeofday ( & start , (struct timezone * )0 );
99
+ #elif defined(__APPLE__ )
100
+ start = clock_gettime_nsec_np (CLOCK_UPTIME_RAW );
93
101
#else
94
102
clock_gettime (CLOCK_REALTIME , & start );
95
103
#endif
@@ -98,7 +106,9 @@ void begin() {
98
106
void end () {
99
107
#if defined(__WIN32__ ) || defined(__WIN64__ ) || !defined(_POSIX_TIMERS )
100
108
gettimeofday ( & stop , (struct timezone * )0 );
109
+ #elif defined(__APPLE__ )
110
+ stop = clock_gettime_nsec_np (CLOCK_UPTIME_RAW );
101
111
#else
102
112
clock_gettime (CLOCK_REALTIME , & stop );
103
113
#endif
104
- }
114
+ }
0 commit comments