1998-02-01 09:37:08 +08:00
|
|
|
#include "time.h"
|
1999-03-17 16:21:44 +08:00
|
|
|
|
|
|
|
#ifdef MSDOS
|
1999-05-03 16:35:22 +08:00
|
|
|
#undef USE_CLOCK
|
1999-03-17 16:21:44 +08:00
|
|
|
#define USE_CLOCK
|
|
|
|
#endif
|
|
|
|
|
1998-02-01 09:37:08 +08:00
|
|
|
#ifndef USE_CLOCK
|
1998-05-19 18:52:03 +08:00
|
|
|
#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
|
|
|
|
#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
|
1998-02-01 09:37:08 +08:00
|
|
|
#include "sys/types.h"
|
|
|
|
#include "sys/times.h"
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#undef Hz
|
|
|
|
#ifdef CLK_TCK
|
|
|
|
#define Hz CLK_TCK
|
|
|
|
#else
|
|
|
|
#ifdef HZ
|
|
|
|
#define Hz HZ
|
|
|
|
#else
|
|
|
|
#define Hz 60
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
double
|
|
|
|
#ifdef KR_headers
|
|
|
|
dtime_(tarray) float *tarray;
|
|
|
|
#else
|
|
|
|
dtime_(float *tarray)
|
|
|
|
#endif
|
|
|
|
{
|
|
|
|
#ifdef USE_CLOCK
|
|
|
|
#ifndef CLOCKS_PER_SECOND
|
|
|
|
#define CLOCKS_PER_SECOND Hz
|
|
|
|
#endif
|
|
|
|
static double t0;
|
|
|
|
double t = clock();
|
|
|
|
tarray[1] = 0;
|
|
|
|
tarray[0] = (t - t0) / CLOCKS_PER_SECOND;
|
|
|
|
t0 = t;
|
|
|
|
return tarray[0];
|
|
|
|
#else
|
|
|
|
struct tms t;
|
|
|
|
static struct tms t0;
|
|
|
|
|
|
|
|
times(&t);
|
2000-12-09 23:34:53 +08:00
|
|
|
tarray[0] = (double)(t.tms_utime - t0.tms_utime) / Hz;
|
|
|
|
tarray[1] = (double)(t.tms_stime - t0.tms_stime) / Hz;
|
1998-02-01 09:37:08 +08:00
|
|
|
t0 = t;
|
|
|
|
return tarray[0] + tarray[1];
|
|
|
|
#endif
|
|
|
|
}
|