From 9afb810f3a05298ba9d5a94495c59082e0a18a3b Mon Sep 17 00:00:00 2001
From: Aaron <aaronquinlan@gmail.com>
Date: Fri, 7 Jan 2011 08:02:56 -0500
Subject: [PATCH] Fixed Issue #60.  Improved randomization granularity for
 shuffleBed.

Previously used time() which has 1 second precision.
Now use gettimeofday() which has millisecond precision.
---
 src/shuffleBed/shuffleBed.cpp | 6 +++++-
 src/shuffleBed/shuffleBed.h   | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/shuffleBed/shuffleBed.cpp b/src/shuffleBed/shuffleBed.cpp
index 5306f9f4..3aca557b 100644
--- a/src/shuffleBed/shuffleBed.cpp
+++ b/src/shuffleBed/shuffleBed.cpp
@@ -31,7 +31,11 @@ BedShuffle::BedShuffle(string &bedFile, string &genomeFile, string &excludeFile,
         srand(seed);
     }
     else {
-        srand((unsigned)time(0));
+        timeval tim;
+        gettimeofday(&tim, NULL);
+        int t1=tim.tv_sec+tim.tv_usec;
+        
+        srand((unsigned)t1);
     }
 
     _bed         = new BedFile(bedFile);
diff --git a/src/shuffleBed/shuffleBed.h b/src/shuffleBed/shuffleBed.h
index 5dde6108..ab675110 100644
--- a/src/shuffleBed/shuffleBed.h
+++ b/src/shuffleBed/shuffleBed.h
@@ -18,6 +18,7 @@
 #include <map>
 #include <cstdlib>
 #include <ctime>
+#include <sys/time.h>
 
 using namespace std;
 
-- 
GitLab