From 9cc09df66b2ce1866fabaf81a9cb3a7f3293dd7c Mon Sep 17 00:00:00 2001
From: Saad Jbabdi <saad@fmrib.ox.ac.uk>
Date: Fri, 14 May 2010 10:16:46 +0000
Subject: [PATCH] really fixed the rand problem in randfib=2

---
 tractvolsx.h | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/tractvolsx.h b/tractvolsx.h
index 51a45b4..6af433b 100644
--- a/tractvolsx.h
+++ b/tractvolsx.h
@@ -186,19 +186,18 @@ namespace TRACTVOLSX{
 		fibst=0;
 	      }
 	      else{
-		float fsumtmp2=0;
-		int fib=0;
-		float rtmp=(float)rand()/float(RAND_MAX);
+		float ft,fsumtmp2=0;
+		float rtmp=fsumtmp * (float)rand()/float(RAND_MAX);
 		
-		while( fsumtmp2<=rtmp){
-		  float ft=(*fsamples[fib])(int(newx),int(newy),int(newz),int(samp));
-		  if(ft>opts.fibthresh.value()){
-		    fsumtmp2+=(ft/fsumtmp); 
+		for(unsigned int fib=0;fib<thsamples.size();fib++){
+		  ft=(*fsamples[fib])(int(newx),int(newy),int(newz),int(samp));
+		  if(ft>opts.fibthresh.value())
+		    fsumtmp2 += ft;
+		  if(rtmp<=fsumtmp2){
+		    fibst=(int)fib;
+		    break;
 		  }
-		  fibst=fib;
-		  fib++;
-		}
-		
+		}		
 	      }
 	    }  
 
-- 
GitLab