summaryrefslogtreecommitdiff
path: root/examples/cuda-chill/mriq.c
blob: ba4b87cdb1bee2d44605ee7f862d992b6bcc8da8 (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
#define N 32768
#define M 3072
struct kValues {
  float Kx;
  float Ky;
  float Kz;
  float PhiMag;
};
extern float sinf(float);
extern float cosf(float);

void
ComputeQCPU(int numK, int numX,struct kValues kVals[M],float x[N], float y[N], float z[N],float Qr[N], float Qi[N]) {
  float expArg;
  float cosArg;
  float sinArg;
  float phi;
  int i;
  int j;
  numK = M;
  numX = N;
  for ( i = 0; i < M; i++) {
    for ( j = 0; j < N; j++) {
      expArg = 6.2831853071795864769252867665590058f * (kVals[i].Kx * x[j] +kVals[i].Ky * y[j] +kVals[i].Kz * z[j]);
      cosArg = cosf(expArg);
      sinArg = sinf(expArg);
      phi = kVals[i].PhiMag;
      Qr[j] += phi * cosArg;
      Qi[j] += phi * sinArg;
    }
  }
}