26#include <Availability.h>
31#if defined(_WIN32) || defined(_WINDOWS) || defined(_MSC_VER)
35#define _CRT_NONSTDC_NO_DEPRECATE 1
36#define _CRT_SECURE_NO_DEPRECATE 1
63#include <libkern/OSAtomic.h>
75#define snprintf sprintf_s
76#define strtok_r strtok_s
78#define fseeko _fseeki64
79#define ftello _ftelli64
81inline double log2(
double x) {
return log(
x) * 1.4426950408889634; }
83typedef unsigned int uint32_t;
84#define M_E (2.7182818284590452354)
85#define M_PI (3.141592653589793238)
86#if !defined(UINT32_MAX)
87#define UINT32_MAX (0xffffffff)
89#if !defined(UINT32_MAX)
101 typedef struct timeval
Time;
116 clock_gettime(CLOCK_MONOTONIC, &
startTime);
126 long elapsedTime = ((seconds) * 1000 + useconds / 1000.0) + 0.5;
128 clock_gettime(CLOCK_MONOTONIC, &
stopTime);
131 long elapsedTime = ((seconds) * 1000 + nseconds / 1000000.0) + 0.5;
139 __int64 ticksPerSeconds;
159 const std::string
_s;
PrintTiming(const std::string &s)
pthread_spinlock_t _spinlock
</pre >< h3 > A simple variable reference</h3 > This is not a very interesting subclass of expression until we add some additional variables Variables on some applications may be very dynamic In this we only need x