Bridge++  Ver.2.1.3
mult_Wilson_eo_dir_openacc-inc.h
Go to the documentation of this file.
1 
10 #define MULT_UV_R(u0,u1,u2,u3,u4,u5,v0,v1,v2,v3,v4,v5) (u0*v0-u1*v1 + u2*v2-u3*v3 + u4*v4-u5*v5)
11 #define MULT_UV_I(u0,u1,u2,u3,u4,u5,v0,v1,v2,v3,v4,v5) (u0*v1+u1*v0 + u2*v3+u3*v2 + u4*v5+u5*v4)
12 
13 
14 //====================================================================
15 void mult_wilson_xp1_eo(real_t *RESTRICT buf, real_t *RESTRICT v1,
16  int *Nsize, int *bc, int ieo, int Nc)
17 {
18  // int idir = 0;
19 
20  int Nx = Nsize[0];
21  int Ny = Nsize[1];
22  int Nz = Nsize[2];
23  int Nt = Nsize[3];
24  int Nyzt = Ny * Nz * Nt;
25 
26  real_t bc2 = bc[0];
27 
28  int size = NVC * ND * CEIL_NWP(Nx * Nyzt);
29  int size_b = NVC * ND2 * CEIL_NWP((Nyzt+1)/2);
30 
31 #pragma acc data present(v1[0:size], buf[0:size_b]), \
32  copyin(ieo, bc2, Nx, Ny, Nz, Nt, Nyzt)
33 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
34  {
35 
36 #pragma acc loop gang worker vector
37  for(int iyzt = 0; iyzt < Nyzt; ++iyzt){
38  int ix = 0;
39  int iy = iyzt % Ny;
40  int iz = (iyzt/Ny) % Nz;
41  int it = iyzt/(Ny * Nz);
42  int ist = ix + Nx * iyzt;
43  int keo = (ieo + iy + iz + it) % 2;
44 
45  if(keo == 1){
46  int iyzt2 = iyzt/2;
47 
48  real_t vt[NVC*ND];
49  for(int id = 0; id < ND; ++id){
50  for(int ic = 0; ic < NC; ++ic){
51  vt[2*ic + NVC * id] = v1[IDX2_SP_R(ic, id, ist)];
52  vt[2*ic+1 + NVC * id] = v1[IDX2_SP_I(ic, id, ist)];
53  }
54  }
55 
56  real_t *vt1 = &buf[ NVC * 2 * iyzt2];
57  real_t *vt2 = &buf[NVC + NVC * 2 * iyzt2];
58 
59  for(int ic = 0; ic < NC; ++ic){
60  int icr = 2*ic;
61  int ici = 2*ic + 1;
62  vt1[icr] = bc2 * (vt[icr + ID1] - vt[ici + ID4]);
63  vt1[ici] = bc2 * (vt[ici + ID1] + vt[icr + ID4]);
64  vt2[icr] = bc2 * (vt[icr + ID2] - vt[ici + ID3]);
65  vt2[ici] = bc2 * (vt[ici + ID2] + vt[icr + ID3]);
66  }
67 
68  }
69 
70  }
71 
72  }
73 
74 }
75 
76 //====================================================================
77 void mult_wilson_xp2_eo(real_t *RESTRICT v2, real_t *RESTRICT u,
78  real_t *RESTRICT buf,
79  int *Nsize, int *bc, int ieo, int Nc)
80 {
81  // int idir = 0;
82 
83  int Nx = Nsize[0];
84  int Ny = Nsize[1];
85  int Nz = Nsize[2];
86  int Nt = Nsize[3];
87  int Nyzt = Ny * Nz * Nt;
88  int Nst = Nx * Nyzt;
89 
90  int size = NVC * ND * CEIL_NWP(Nst);
91  int size_b = NVC * ND2 * CEIL_NWP((Nyzt+1)/2);
92  int size_u = NDF * CEIL_NWP(Nst);
93 
94 #pragma acc data present(v2[0:size], buf[0:size_b], u[0:size_u]), \
95  copyin(ieo, Nx, Ny, Nz, Nt, Nyzt)
96 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
97  {
98 
99 #pragma acc loop gang worker vector
100  for(int iyzt = 0; iyzt < Nyzt; ++iyzt){
101  int ix = Nx-1;
102  int iy = iyzt % Ny;
103  int iz = (iyzt/Ny) % Nz;
104  int it = iyzt/(Ny * Nz);
105  int ist = ix + Nx * iyzt;
106  int keo = (ieo + iy + iz + it) % 2;
107 
108  if(keo == 1){
109  int iyzt2 = iyzt/2;
110 
111  real_t vt1[NVC], vt2[NVC], ut[NDF];
112  real_t wt1[2], wt2[2];
113 
114  for(int ivc = 0; ivc < NVC; ++ivc){
115  vt1[ivc] = buf[ivc + 2 * NVC * iyzt2];
116  vt2[ivc] = buf[ivc + NVC + 2 * NVC * iyzt2];
117  }
118 
119  for(int ic = 0; ic < NC; ++ic){
120 
121  for(int ic2 = 0; ic2 < NC; ++ic2){
122  ut[2*ic2 ] = u[IDX2_G_R(ic2, ic, ist)];
123  ut[2*ic2+1] = u[IDX2_G_I(ic2, ic, ist)];
124  }
125 
126  wt1[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
127  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
128  wt1[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
129  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
130  wt2[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
131  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
132  wt2[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
133  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
134 
135  v2[IDX2_SP_R(ic, 0, ist)] += wt1[0];
136  v2[IDX2_SP_I(ic, 0, ist)] += wt1[1];
137  v2[IDX2_SP_R(ic, 1, ist)] += wt2[0];
138  v2[IDX2_SP_I(ic, 1, ist)] += wt2[1];
139  v2[IDX2_SP_R(ic, 2, ist)] += wt2[1];
140  v2[IDX2_SP_I(ic, 2, ist)] += -wt2[0];
141  v2[IDX2_SP_R(ic, 3, ist)] += wt1[1];
142  v2[IDX2_SP_I(ic, 3, ist)] += -wt1[0];
143 
144  }
145 
146  }
147 
148  }
149 
150  }
151 
152 }
153 
154 //====================================================================
155 void mult_wilson_xpb_eo(real_t *RESTRICT v2, real_t *RESTRICT u,
156  real_t *RESTRICT v1,
157  int *Nsize, int *bc, int ieo, int Nc)
158 {
159  // int idir = 0;
160 
161  int Nx = Nsize[0];
162  int Ny = Nsize[1];
163  int Nz = Nsize[2];
164  int Nt = Nsize[3];
165  int Nyzt = Ny * Nz * Nt;
166  int Nst = Nx * Nyzt;
167 
168  int size = NVC * ND * CEIL_NWP(Nst);
169  int size_u = NDF * CEIL_NWP(Nst);
170 
171 #pragma acc data present(v2[0:size], v1[0:size], u[0:size_u]), \
172  copyin(ieo, bc[0:4], Nx, Nyzt, Nst)
173 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
174  {
175  for(int ist = 0; ist < Nst; ++ist){
176  int ix = ist % Nx;
177  int iy = (ist/Nx) % Ny;
178  int iz = (ist/(Nx*Ny)) % Nz;
179  int it = ist/(Nx*Ny*Nz);
180  int iyzt = ist/Nx;
181  int keo = (ieo + iy + iz + it) % 2;
182  int nei = ((ix + keo) % Nx) + Nx * iyzt;
183  real_t bc2 = 1.0;
184  if(ix == Nx-1 && keo == 1) bc2 = bc[0];
185 
186  real_t vt[2*NC*ND], vt1[NVC], vt2[NVC], ut[NDF];
187  real_t wt1[2], wt2[2];
188 
189  for(int id = 0; id < ND; ++id){
190  for(int ic = 0; ic < NC; ++ic){
191  int icr = 2*ic;
192  int ici = 2*ic + 1;
193  vt[icr + NVC*id] = v1[IDX2_SP_R(ic, id, nei)];
194  vt[ici + NVC*id] = v1[IDX2_SP_I(ic, id, nei)];
195  }
196  }
197 
198  for(int ic = 0; ic < NC; ++ic){
199  int icr = 2*ic;
200  int ici = 2*ic + 1;
201  vt1[icr] = bc2 * (vt[icr + ID1] - vt[ici + ID4]);
202  vt1[ici] = bc2 * (vt[ici + ID1] + vt[icr + ID4]);
203  vt2[icr] = bc2 * (vt[icr + ID2] - vt[ici + ID3]);
204  vt2[ici] = bc2 * (vt[ici + ID2] + vt[icr + ID3]);
205  }
206 
207  for(int ic = 0; ic < NC; ++ic){
208 
209  for(int ic2 = 0; ic2 < NC; ++ic2){
210  ut[2*ic2 ] = u[IDX2_G_R(ic2, ic, ist)];
211  ut[2*ic2+1] = u[IDX2_G_I(ic2, ic, ist)];
212  }
213 
214  wt1[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
215  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
216  wt1[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
217  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
218  wt2[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
219  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
220  wt2[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
221  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
222 
223  v2[IDX2_SP_R(ic, 0, ist)] += wt1[0];
224  v2[IDX2_SP_I(ic, 0, ist)] += wt1[1];
225  v2[IDX2_SP_R(ic, 1, ist)] += wt2[0];
226  v2[IDX2_SP_I(ic, 1, ist)] += wt2[1];
227  v2[IDX2_SP_R(ic, 2, ist)] += wt2[1];
228  v2[IDX2_SP_I(ic, 2, ist)] += -wt2[0];
229  v2[IDX2_SP_R(ic, 3, ist)] += wt1[1];
230  v2[IDX2_SP_I(ic, 3, ist)] += -wt1[0];
231 
232  }
233 
234  }
235 
236  }
237 
238 }
239 
240 //====================================================================
241 void mult_wilson_xm1_eo(real_t *RESTRICT buf, real_t *RESTRICT u,
242  real_t *RESTRICT v1,
243  int *Nsize, int *bc, int ieo, int Nc)
244 {
245  // int idir = 0;
246 
247  int Nx = Nsize[0];
248  int Ny = Nsize[1];
249  int Nz = Nsize[2];
250  int Nt = Nsize[3];
251  int Nyzt = Ny * Nz * Nt;
252  int Nst = Nx * Nyzt;
253 
254  int size = NVC * ND * CEIL_NWP(Nst);
255  int size_b = NVC * ND2 * CEIL_NWP((Nyzt+1)/2);
256  int size_u = NDF * CEIL_NWP(Nst);
257 
258 #pragma acc data present(v1[0:size], buf[0:size_b], u[0:size_u]), \
259  copyin(ieo, Nx, Ny, Nz, Nt, Nyzt)
260 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
261  {
262 
263 #pragma acc loop gang worker vector
264  for(int iyzt = 0; iyzt < Nyzt; ++iyzt){
265  int ix = Nx-1;
266  int iy = iyzt % Ny;
267  int iz = (iyzt/Ny) % Nz;
268  int it = iyzt/(Ny * Nz);
269  int ist = ix + Nx * iyzt;
270  int keo = (ieo + iy + iz + it) % 2;
271 
272  if(keo == 0){
273  int iyzt2 = iyzt/2;
274 
275  real_t vt[NVC*ND], vt1[NVC], vt2[NVC], ut[NDF];
276 
277  for(int id = 0; id < ND; ++id){
278  for(int ic = 0; ic < NC; ++ic){
279  vt[2*ic + NVC * id] = v1[IDX2_SP_R(ic, id, ist)];
280  vt[2*ic+1 + NVC * id] = v1[IDX2_SP_I(ic, id, ist)];
281  }
282  }
283 
284  for(int ic = 0; ic < NC; ++ic){
285  int icr = 2*ic;
286  int ici = 2*ic + 1;
287  vt1[icr] = vt[icr + ID1] + vt[ici + ID4];
288  vt1[ici] = vt[ici + ID1] - vt[icr + ID4];
289  vt2[icr] = vt[icr + ID2] + vt[ici + ID3];
290  vt2[ici] = vt[ici + ID2] - vt[icr + ID3];
291  }
292 
293  real_t *wt1 = &buf[ NVC * 2 * iyzt2];
294  real_t *wt2 = &buf[NVC + NVC * 2 * iyzt2];
295 
296  for(int ic = 0; ic < NC; ++ic){
297  int icr = 2*ic;
298  int ici = 2*ic + 1;
299 
300  for(int ic2 = 0; ic2 < NC; ++ic2){
301  ut[2*ic2 ] = u[IDX2_G_R(ic, ic2, ist)];
302  ut[2*ic2+1] = - u[IDX2_G_I(ic, ic2, ist)];
303  }
304 
305  wt1[icr] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
306  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
307  wt1[ici] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
308  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
309  wt2[icr] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
310  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
311  wt2[ici] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
312  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
313 
314  }
315 
316  }
317 
318  }
319 
320  }
321 
322 }
323 
324 //====================================================================
325 void mult_wilson_xm2_eo(real_t *RESTRICT v2, real_t *RESTRICT buf,
326  int *Nsize, int *bc, int ieo, int Nc)
327 {
328  // int idir = 0;
329 
330  int Nx = Nsize[0];
331  int Ny = Nsize[1];
332  int Nz = Nsize[2];
333  int Nt = Nsize[3];
334  int Nyzt = Ny * Nz * Nt;
335  int Nst = Nx * Nyzt;
336 
337  real_t bc2 = bc[0];
338 
339  int size = NVC * ND * CEIL_NWP(Nst);
340  int size_b = NVC * ND2 * CEIL_NWP((Nyzt+1)/2);
341 
342 #pragma acc data present(v2[0:size], buf[0:size_b]), \
343  copyin(bc2, ieo, Nx, Ny, Nz, Nt, Nyzt)
344 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
345  {
346 
347 #pragma acc loop gang worker vector
348  for(int iyzt = 0; iyzt < Nyzt; ++iyzt){
349  int ix = 0;
350  int iy = iyzt % Ny;
351  int iz = (iyzt/Ny) % Nz;
352  int it = iyzt/(Ny * Nz);
353  int ist = ix + Nx * iyzt;
354  int keo = (ieo + iy + iz + it) % 2;
355 
356  if(keo == 0){
357  int iyzt2 = iyzt/2;
358 
359  real_t wt1[2], wt2[2];
360 
361  for(int ic = 0; ic < NC; ++ic){
362  int icr = 2 * ic;
363  int ici = 2 * ic + 1;
364  wt1[0] = bc2 * buf[icr + 2 * NVC * iyzt2];
365  wt1[1] = bc2 * buf[ici + 2 * NVC * iyzt2];
366  wt2[0] = bc2 * buf[icr + NVC + 2 * NVC * iyzt2];
367  wt2[1] = bc2 * buf[ici + NVC + 2 * NVC * iyzt2];
368 
369  v2[IDX2_SP_R(ic, 0, ist)] += wt1[0];
370  v2[IDX2_SP_I(ic, 0, ist)] += wt1[1];
371  v2[IDX2_SP_R(ic, 1, ist)] += wt2[0];
372  v2[IDX2_SP_I(ic, 1, ist)] += wt2[1];
373  v2[IDX2_SP_R(ic, 2, ist)] += -wt2[1];
374  v2[IDX2_SP_I(ic, 2, ist)] += wt2[0];
375  v2[IDX2_SP_R(ic, 3, ist)] += -wt1[1];
376  v2[IDX2_SP_I(ic, 3, ist)] += wt1[0];
377  }
378 
379  }
380 
381  }
382 
383  }
384 
385 }
386 
387 //====================================================================
388  void mult_wilson_xmb_eo(real_t *RESTRICT v2, real_t *RESTRICT u,
389  real_t *RESTRICT v1,
390  int *Nsize, int *bc, int ieo, int Nc)
391 {
392  // int idir = 0;
393 
394  int Nx = Nsize[0];
395  int Ny = Nsize[1];
396  int Nz = Nsize[2];
397  int Nt = Nsize[3];
398  int Nyzt = Ny * Nz * Nt;
399  int Nst = Nx * Nyzt;
400 
401  int size = NVC * ND * CEIL_NWP(Nst);
402  int size_u = NDF * CEIL_NWP(Nst);
403 
404 #pragma acc data present(v2[0:size], v1[0:size], u[0:size_u]), \
405  copyin(bc[0:4], ieo, Nx, Ny, Nz, Nt, Nyzt, Nst)
406 #pragma acc parallel num_workers(NUM_WORKERS) vector_length(VECTOR_LENGTH)
407  {
408  for(int ist = 0; ist < Nst; ++ist){
409  int ix = ist % Nx;
410  int iy = (ist/Nx) % Ny;
411  int iz = (ist/(Nx*Ny)) % Nz;
412  int it = ist/(Nx*Ny*Nz);
413  int iyzt = ist/Nx;
414  int keo = (ieo + iy + iz + it) % 2;
415  int ix2 = (ix - 1 + keo + Nx) % Nx;
416  int nei = ix2 + Nx * iyzt;
417  real_t bc2 = 1.0;
418  if(ix == 0 && keo == 0) bc2 = bc[0];
419 
420  real_t vt[NVC*ND], vt1[NVC], vt2[NVC], ut[NDF];
421  real_t wt1[2], wt2[2];
422 
423  for(int id = 0; id < ND; ++id){
424  for(int ic = 0; ic < NC; ++ic){
425  int icr = 2*ic;
426  int ici = 2*ic + 1;
427  vt[icr + NVC * id] = v1[IDX2_SP_R(ic, id, nei)];
428  vt[ici + NVC * id] = v1[IDX2_SP_I(ic, id, nei)];
429  }
430  }
431 
432  for(int ic = 0; ic < NC; ++ic){
433  int icr = 2*ic;
434  int ici = 2*ic + 1;
435  vt1[icr] = vt[icr + ID1] + vt[ici + ID4];
436  vt1[ici] = vt[ici + ID1] - vt[icr + ID4];
437  vt2[icr] = vt[icr + ID2] + vt[ici + ID3];
438  vt2[ici] = vt[ici + ID2] - vt[icr + ID3];
439  }
440 
441  for(int ic = 0; ic < NC; ++ic){
442 
443  for(int ic2 = 0; ic2 < NC; ++ic2){
444  ut[2*ic2 ] = u[IDX2_G_R(ic, ic2, nei)];
445  ut[2*ic2+1] = - u[IDX2_G_I(ic, ic2, nei)];
446  }
447 
448  wt1[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
449  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
450  wt1[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
451  vt1[0],vt1[1],vt1[2],vt1[3],vt1[4],vt1[5]);
452  wt2[0] = MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
453  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
454  wt2[1] = MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
455  vt2[0],vt2[1],vt2[2],vt2[3],vt2[4],vt2[5]);
456 
457  v2[IDX2_SP_R(ic, 0, ist)] += bc2 * wt1[0];
458  v2[IDX2_SP_I(ic, 0, ist)] += bc2 * wt1[1];
459  v2[IDX2_SP_R(ic, 1, ist)] += bc2 * wt2[0];
460  v2[IDX2_SP_I(ic, 1, ist)] += bc2 * wt2[1];
461  v2[IDX2_SP_R(ic, 2, ist)] += -bc2 * wt2[1];
462  v2[IDX2_SP_I(ic, 2, ist)] += bc2 * wt2[0];
463  v2[IDX2_SP_R(ic, 3, ist)] += -bc2 * wt1[1];
464  v2[IDX2_SP_I(ic, 3, ist)] += bc2 * wt1[0];
465 
466  }
467 
468  }
469 
470  }
471 
472 }
473 
474 //====================================================================
475 
mult_wilson_xm2_eo
void mult_wilson_xm2_eo(real_t *RESTRICT v2, real_t *RESTRICT buf, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:325
MULT_UV_R
#define MULT_UV_R(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: mult_Wilson_eo_dir_openacc-inc.h:10
mult_wilson_xpb_eo
void mult_wilson_xpb_eo(real_t *RESTRICT v2, real_t *RESTRICT u, real_t *RESTRICT v1, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:155
iy
int iy
Definition: mult_Wilson_xyz_openacc-inc.h:239
ID1
#define ID1
Definition: fopr_Wilson_impl_SU2-inc.h:18
NDF
#define NDF
Definition: field_F_imp_SU2-inc.h:17
MULT_UV_I
#define MULT_UV_I(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: mult_Wilson_eo_dir_openacc-inc.h:11
mult_wilson_xm1_eo
void mult_wilson_xm1_eo(real_t *RESTRICT buf, real_t *RESTRICT u, real_t *RESTRICT v1, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:241
CEIL_NWP
#define CEIL_NWP(nst)
Definition: define_params.h:47
IDX2_G_I
#define IDX2_G_I(ic1, ic2, ist)
Definition: define_index.h:52
ID2
#define ID2
Definition: fopr_Wilson_impl_SU2-inc.h:19
ID4
#define ID4
Definition: fopr_Wilson_impl_SU2-inc.h:21
iyzt
int iyzt
Definition: mult_Domainwall_eo_xyz_openacc-inc.h:14
ix
int ix
Definition: mult_Wilson_xyz_openacc-inc.h:16
NC
#define NC
Definition: field_F_imp_SU2-inc.h:15
vt1
real_t vt1
Definition: mult_Staggered_uvdn1_openacc-inc.h:8
bc2
int bc2
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:62
ND
#define ND
Definition: field_F_imp_SU2-inc.h:18
it
int it
Definition: mult_Wilson_xyz_openacc-inc.h:461
ix2
int ix2
Definition: mult_Domainwall_eo_xyz_openacc-inc.h:138
real_t
double real_t
Definition: bridgeACC_AField_double.cpp:14
ID3
#define ID3
Definition: fopr_Wilson_impl_SU2-inc.h:20
mult_wilson_xmb_eo
void mult_wilson_xmb_eo(real_t *RESTRICT v2, real_t *RESTRICT u, real_t *RESTRICT v1, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:388
mult_wilson_xp1_eo
void mult_wilson_xp1_eo(real_t *RESTRICT buf, real_t *RESTRICT v1, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:15
NVC
#define NVC
Definition: fopr_Wilson_impl_SU2-inc.h:15
IDX2_SP_R
#define IDX2_SP_R(ic, id, ist)
Definition: define_index.h:31
iz
int iz
Definition: mult_Wilson_xyz_openacc-inc.h:462
mult_wilson_xp2_eo
void mult_wilson_xp2_eo(real_t *RESTRICT v2, real_t *RESTRICT u, real_t *RESTRICT buf, int *Nsize, int *bc, int ieo, int Nc)
Definition: mult_Wilson_eo_dir_openacc-inc.h:77
IDX2_G_R
#define IDX2_G_R(ic1, ic2, ist)
Definition: define_index.h:51
vt2
real_t vt2
Definition: mult_Staggered_uvdn1_openacc-inc.h:8
ND2
#define ND2
Definition: define_params_SU3.h:18
IDX2_SP_I
#define IDX2_SP_I(ic, id, ist)
Definition: define_index.h:32