xref: /phasta/phSolver/common/tmrc.c (revision 8746ab438bbda91291f8cdd62b94f8385f2d26f1)
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. Jansen double 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