]> git.donarmstrong.com Git - rsem.git/blobdiff - Gibbs.cpp
rsem v1.1.14, add --sampling-for-bam option, modify rsem-bam2wig to handle BAM files...
[rsem.git] / Gibbs.cpp
index 5bdfb247aa2db979cc8c3b345eb50b977462a43e..979860bda97cf07bd6e2a4f37869fa59186c7e3a 100644 (file)
--- a/Gibbs.cpp
+++ b/Gibbs.cpp
@@ -1,4 +1,3 @@
-#include<ctime>
 #include<cstdio>
 #include<cstring>
 #include<cstdlib>
@@ -7,9 +6,8 @@
 #include<sstream>
 #include<vector>
 
-#include "boost/random.hpp"
-
 #include "utils.h"
+#include "sampling.h"
 
 #include "Model.h"
 #include "SingleModel.h"
@@ -53,9 +51,6 @@ bool quiet;
 
 vector<double> arr;
 
-boost::mt19937 rng(time(NULL));
-boost::uniform_01<boost::mt19937> rg(rng);
-
 void load_data(char* reference_name, char* statName, char* imdName) {
        ifstream fin;
        string line;
@@ -121,27 +116,6 @@ void load_data(char* reference_name, char* statName, char* imdName) {
        if (verbose) { printf("Loading Data is finished!\n"); }
 }
 
-// arr should be cumulative!
-// interval : [,)
-// random number should be in [0, arr[len - 1])
-// If by chance arr[len - 1] == 0.0, one possibility is to sample uniformly from 0...len-1
-int sample(vector<double>& arr, int len) {
-  int l, r, mid;
-  double prb = rg() * arr[len - 1];
-
-  l = 0; r = len - 1;
-  while (l <= r) {
-    mid = (l + r) / 2;
-    if (arr[mid] <= prb) l = mid + 1;
-    else r = mid - 1;
-  }
-
-  if (l >= len) { printf("%d %lf %lf\n", len, arr[len - 1], prb); }
-  assert(l < len);
-
-  return l;
-}
-
 void init() {
        int len, fr, to;