/*! @file superlu_timer.c * \brief Returns the time used * *
 * Purpose
 * ======= 
 * 
 * Returns the time in seconds used by the process.
 *
 * Note: the timer function call is machine dependent. Use conditional
 *       compilation to choose the appropriate function.
 * 
*/ #ifdef SUN /* * It uses the system call gethrtime(3C), which is accurate to * nanoseconds. */ #include double SuperLU_timer_() { return ( (double)gethrtime() / 1e9 ); } #elif _WIN32 #include double SuperLU_timer_() { clock_t t; t=clock(); return ((double)t)/CLOCKS_PER_SEC; } #else #ifndef NO_TIMER #include #include #include #include #endif #ifndef CLK_TCK #define CLK_TCK 60 #endif /*! \brief Timer function */ double SuperLU_timer_() { #ifdef NO_TIMER /* no sys/times.h on WIN32 */ double tmp; tmp = 0.0; #else struct tms use; double tmp; int clocks_per_sec = sysconf(_SC_CLK_TCK); times ( &use ); tmp = use.tms_utime; tmp += use.tms_stime; #endif /*return (double)(tmp) / CLK_TCK;*/ return (double)(tmp) / clocks_per_sec; } #endif