diff --git a/tractvolsx.h b/tractvolsx.h index 51a45b42d6792b024bb749de1ce3dde33820a036..6af433bbc6f9bc7dff8590898ade05a22c253905 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++; - } - + } } }