From d57c1ff89d92630e5190ff94f83f609161645ce2 Mon Sep 17 00:00:00 2001
From: Moises Fernandez <moisesf@fmrib.ox.ac.uk>
Date: Thu, 16 May 2013 19:15:37 +0000
Subject: [PATCH] Change order of instructions because CUDA compiler fails
 (compiler problem)

---
 CUDA/PVM_single_c.cu | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/CUDA/PVM_single_c.cu b/CUDA/PVM_single_c.cu
index 2d18caa..da6ac7e 100644
--- a/CUDA/PVM_single_c.cu
+++ b/CUDA/PVM_single_c.cu
@@ -297,7 +297,6 @@ __device__ void grad_PVM_single_c(	//INPUT
   	for(int dir=0;dir<max_dir;dir++){
 		for (int p=0; p<nparams; p++) myJ[p]=0;
 		if(dir<ndir){
-    			Iso_term=isoterm_PVM_single_c(dir_iter,_d,bvals);  //Precompute some terms for this datapoint
     			for(int k=0;k<nfib;k++){
 				int kk = 2+3*(k) +1;
       				xx.x=x[k*3];
@@ -306,6 +305,7 @@ __device__ void grad_PVM_single_c(	//INPUT
       				//Aniso_terms[k]=anisoterm_PVM_single_c(dir_iter,_d,xx,bvecs,bvals,ndirections);
 				myJ[kk] = anisoterm_PVM_single_c(dir_iter,_d,xx,bvecs,bvals,ndirections);
     			}
+			Iso_term=isoterm_PVM_single_c(dir_iter,_d,bvals);  //Precompute some terms for this datapoint
     			sig = 0;
     			for(int k=0;k<nfib;k++){
      				int kk = 2+3*(k);
@@ -438,8 +438,7 @@ __device__ void hess_PVM_single_c(	//INPUT
 
   	for(int dir=0;dir<max_dir;dir++){
 		for (int p=0; p<nparams; p++) myJ[p]=0;
-		if(dir<ndir){
-    			Iso_term=isoterm_PVM_single_c(dir_iter,_d,bvals);  //Precompute some terms for this datapoint
+		if(dir<ndir){	
     			for(int k=0;k<nfib;k++){
 				int kk = 2+3*(k) +1;
       				xx.x=x[k*3];
@@ -448,6 +447,7 @@ __device__ void hess_PVM_single_c(	//INPUT
       				//Aniso_terms[k]=anisoterm_PVM_single_c(dir_iter,_d,xx,bvecs,bvals,ndirections);
 				myJ[kk] = anisoterm_PVM_single_c(dir_iter,_d,xx,bvecs,bvals,ndirections);
     			}
+			Iso_term=isoterm_PVM_single_c(dir_iter,_d,bvals);  //Precompute some terms for this datapoint
     			sig = 0;
     			for(int k=0;k<nfib;k++){
       				int kk = 2+3*(k);
@@ -526,7 +526,7 @@ extern "C" __global__ void fit_PVM_single_c_kernel(	//INPUT
 							const bool	 	m_return_fanning,
 							const bool		gradnonlin,
 							//INPUT - OUTPUT
-							float* 		params)
+							float* 			params)
 {
 	int idSubVOX = threadIdx.x;
 	int idVOX = blockIdx.x;
-- 
GitLab