1*20fccb6eSCameron Smith #include "tmrc.h" 259599516SKenneth E. Jansen #include <stdio.h> 359599516SKenneth E. Jansen #include <sys/types.h> 459599516SKenneth E. Jansen #include <time.h> 559599516SKenneth E. Jansen 659599516SKenneth E. Jansen #include <sys/time.h> 759599516SKenneth E. Jansen #include <sys/resource.h> 859599516SKenneth E. Jansen #include <unistd.h> 959599516SKenneth E. Jansen 1059599516SKenneth E. Jansen #ifdef __bgq__ 1159599516SKenneth E. Jansen #include "hwi/include/bqc/A2_inlines.h" 1259599516SKenneth E. Jansen #endif 1359599516SKenneth E. Jansen TMRC(void)1459599516SKenneth E. Jansendouble TMRC (void) 1559599516SKenneth E. Jansen { 1659599516SKenneth E. Jansen 1759599516SKenneth E. Jansen #ifdef __bgq__ 1859599516SKenneth E. Jansen 1986f7e418SCameron Smith /* use the GetTimeBase function available on BGQ */ 2059599516SKenneth E. Jansen uint64_t TB = GetTimeBase(); 2186f7e418SCameron Smith double t1 = 6.25e-10*TB; /* = 1/1.6e9 */ 2259599516SKenneth E. Jansen 2359599516SKenneth E. Jansen #else 2459599516SKenneth E. Jansen 2586f7e418SCameron Smith /* use the gettimeofday function available on any Linux platform */ 2659599516SKenneth E. Jansen 2759599516SKenneth E. Jansen int rc; 2859599516SKenneth E. Jansen struct timeval tv; 2986f7e418SCameron Smith double t1 = 0; 3059599516SKenneth E. Jansen 3159599516SKenneth E. Jansen rc = gettimeofday (&tv, NULL); 3259599516SKenneth E. Jansen if (rc == -1) { 3359599516SKenneth E. Jansen fprintf(stderr,"tmrc: gettimeofday\n"); 3459599516SKenneth E. Jansen return 0.; 3559599516SKenneth E. Jansen } 3686f7e418SCameron Smith t1 = ((double) tv.tv_sec) + 1.e-6 * ((double) tv.tv_usec); 3759599516SKenneth E. Jansen 3859599516SKenneth E. Jansen #endif 3959599516SKenneth E. Jansen 4059599516SKenneth E. Jansen return t1; 4159599516SKenneth E. Jansen } 42