diff --git a/CUDA/diffmodels_utils.h b/CUDA/diffmodels_utils.h
new file mode 100644
index 0000000000000000000000000000000000000000..af4cc53a069c02c22cca96395a310010b89c4840
--- /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