From 109eaed0e6660a31b7f06e02bc7459c03732bc7f Mon Sep 17 00:00:00 2001
From: Moises Fernandez <moisesf@fmrib.ox.ac.uk>
Date: Fri, 7 Dec 2012 20:50:42 +0000
Subject: [PATCH] Some maths operations used by diffmodels

---
 CUDA/diffmodels_utils.h | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 CUDA/diffmodels_utils.h

diff --git a/CUDA/diffmodels_utils.h b/CUDA/diffmodels_utils.h
new file mode 100644
index 0000000..af4cc53
--- /dev/null
+++ b/CUDA/diffmodels_utils.h
@@ -0,0 +1,39 @@
+#ifndef __DIFFMODELS_UTILS
+#define __DIFFMODELS_UTILS
+
+//defined in diffmodels.h
+#define two_pi_gpu 0.636619772
+
+//defined in diffmodels.h
+#define FSMALL_gpu 0.001
+
+//defined in diffmodels.h
+#define f2beta_gpu(f) (asin(double(sqrt(double(f)))))
+
+//defined in diffmodels.h
+#define d2lambda_gpu(d) (sqrt(double(d))) 
+
+//defined in diffmodels.h
+#define beta2f_gpu(beta) (pow(sin(double(beta)),2.0))
+
+//defined in diffmodels.h
+#define lambda2d_gpu(lambda) (lambda*lambda) 
+
+//defined in diffmodels.h
+__device__ inline double f2x_gpu(double x){
+	return tan(double((x)/two_pi)); 	
+}
+
+//defined in diffmodels.h
+__device__ inline double x2f_gpu(double x){         
+	return abs(two_pi*atan(x));
+}
+
+
+//defined in miscmaths.h 
+__device__ inline  int sign_gpu(int x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
+__device__ inline int sign_gpu(float x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
+__device__ inline int sign_gpu(double x){ if (x>0) return 1; else { if (x<0) return -1; else return 0; } }
+
+
+#endif
-- 
GitLab