summaryrefslogtreecommitdiff
path: root/test-chill/test-cases/examples/cuda-chill/mriq-fh.c
blob: 1e924b7a401f5b070387e6a821b60f278ab4849e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#define X 32768
#define K 256
struct kValues {
  float Kx;
  float Ky;
  float Kz;
  float PhiMag;
};
extern float sin(float);
extern float cos(float);

void mriFH_cpu(float *rPhi,float *rRho,float *iRho, float *iPhi, float *rD, float *iD, float *kx, float *ky, float *kz, float *dx, float *dy, float *dz, float *rFHref, float *iFHref)
{

    	float rfh;
	float ifh;
	float exp;
	float cArg;
	float sArg;
    	//float rRho[K];
	//float iRho[K];
        unsigned int k;
	unsigned int x;
 
      
    for (x = 0; x < X; ++x) {
        for (k = 0; k < K; ++k) {
            
	       exp = 2 * 3.14159 * (kx[k]* dx[x] + ky[k]* dy[x] + kz[k]* dz[x]);
	       cArg = cos(exp);
	       sArg = sin(exp);
            rFHref[x] += rRho[k]* cArg - iRho[k]* sArg;
            iFHref[x] += iRho[k]*cArg + rRho[k]*sArg;
        }
         
    }
}