EVSL  1.1.0
EigenValues Slicing Library
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
mactime.c
Go to the documentation of this file.
1 #include <mach/mach.h>
2 #include <mach/mach_time.h>
3 #include <unistd.h>
4 #include <stdio.h>
5 #include <math.h>
14 double evsl_timer() {
15  double t;
16  uint64_t absNano;
17  static mach_timebase_info_data_t sTimebaseInfo;
18  absNano = mach_absolute_time();
19  if ( sTimebaseInfo.denom == 0 ) {
20  (void) mach_timebase_info(&sTimebaseInfo);
21  }
22  t = (double) absNano * 1.e-09*
23  (sTimebaseInfo.numer / sTimebaseInfo.denom);
24  return t;
25 }
26 
30 int time_seeder() {
31  double t1,t2;
32  int iseed, zero=0;
33  t1 = evsl_timer();
34  t1 = 1.e+09*frexp(t1, &zero);
35  t1 = modf(t1, &t2);
36  iseed = (int)(1.e+05*t1);
37  return (iseed);
38 }
39 
40 
int time_seeder()
Uses the timer to generate a seed to be used for srand.
Definition: mactime.c:30
double evsl_timer()
evsl timer for mac
Definition: mactime.c:14