+#if DEBUG
+
+#define DEBUG_NUM_TIMESTAMPS 3
+#define DEBUG_TIME_IN_MICROSECONDS 0
+
+#if DEBUG_TIME_IN_MICROSECONDS
+static double Counter_Microseconds()
+{
+ static struct timeval base_time = { 0, 0 };
+ struct timeval current_time;
+ double counter;
+
+ gettimeofday(¤t_time, NULL);
+
+ /* reset base time in case of wrap-around */
+ if (current_time.tv_sec < base_time.tv_sec)
+ base_time = current_time;
+
+ counter =
+ ((double)(current_time.tv_sec - base_time.tv_sec)) * 1000000 +
+ ((double)(current_time.tv_usec - base_time.tv_usec));
+
+ return counter; /* return microseconds since last init */
+}
+#endif