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