12 if(
ix == Nx-1 && keo == 1){
15 int istu = ist + Nst_pad * (ieo + 2*0);
20 for(
int ivc = 0; ivc <
NVC; ++ivc){
21 vt1[ivc] = buf_xp[
IDXBF(ivc, 0, iyzt2)];
22 vt2[ivc] = buf_xp[
IDXBF(ivc, 1, iyzt2)];
25 for(
int ic = 0; ic <
NC; ++ic){
26 for(
int ic2 = 0; ic2 <
NC; ++ic2){
27 ut[2*ic2 ] = u[
IDX2_G_R(ic2, ic, istu)];
28 ut[2*ic2+1] = u[
IDX2_G_I(ic2, ic, istu)];
30 wt1[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
32 wt1[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
34 wt2[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
36 wt2[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
38 v2L[2*ic +
ID1] += wt1[0];
39 v2L[2*ic+1 +
ID1] += wt1[1];
40 v2L[2*ic +
ID2] += wt2[0];
41 v2L[2*ic+1 +
ID2] += wt2[1];
42 v2L[2*ic +
ID3] += wt2[1];
43 v2L[2*ic+1 +
ID3] += -wt2[0];
44 v2L[2*ic +
ID4] += wt1[1];
45 v2L[2*ic+1 +
ID4] += -wt1[0];
50 if(
ix == 0 && keo == 0){
56 for(
int ic = 0; ic <
NC; ++ic){
62 v2L[2*ic +
ID1] += wt1[0];
63 v2L[2*ic+1 +
ID1] += wt1[1];
64 v2L[2*ic +
ID2] += wt2[0];
65 v2L[2*ic+1 +
ID2] += wt2[1];
66 v2L[2*ic +
ID3] += -wt2[1];
67 v2L[2*ic+1 +
ID3] += wt2[0];
68 v2L[2*ic +
ID4] += -wt1[1];
69 v2L[2*ic+1 +
ID4] += wt1[0];
80 int ixzt =
ix + Nx * (
iz + Nz *
it);
81 int istu = ist + Nst_pad * (ieo + 2*1);
86 for(
int ivc = 0; ivc <
NVC; ++ivc){
87 vt1[ivc] = buf_yp[
IDXBF(ivc, 0, ixzt)];
88 vt2[ivc] = buf_yp[
IDXBF(ivc, 1, ixzt)];
91 for(
int ic = 0; ic <
NC; ++ic){
92 for(
int ic2 = 0; ic2 <
NC; ++ic2){
93 ut[2*ic2 ] = u[
IDX2_G_R(ic2, ic, istu)];
94 ut[2*ic2+1] = u[
IDX2_G_I(ic2, ic, istu)];
96 wt1[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
98 wt1[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
100 wt2[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
102 wt2[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
104 v2L[ic*2 +
ID1] += wt1[0];
105 v2L[ic*2+1 +
ID1] += wt1[1];
106 v2L[ic*2 +
ID2] += wt2[0];
107 v2L[ic*2+1 +
ID2] += wt2[1];
108 v2L[ic*2 +
ID3] += -wt2[0];
109 v2L[ic*2+1 +
ID3] += -wt2[1];
110 v2L[ic*2 +
ID4] += wt1[0];
111 v2L[ic*2+1 +
ID4] += wt1[1];
117 int ixzt =
ix + Nx * (
iz + Nz *
it);
121 for(
int ic = 0; ic <
NC; ++ic){
126 v2L[ic*2 +
ID1] += wt1[0];
127 v2L[ic*2+1 +
ID1] += wt1[1];
128 v2L[ic*2 +
ID2] += wt2[0];
129 v2L[ic*2+1 +
ID2] += wt2[1];
130 v2L[ic*2 +
ID3] += wt2[0];
131 v2L[ic*2+1 +
ID3] += wt2[1];
132 v2L[ic*2 +
ID4] += -wt1[0];
133 v2L[ic*2+1 +
ID4] += -wt1[1];
144 int ixyt =
ix + Nx * (
iy + Ny *
it);
145 int istu = ist + Nst_pad * (ieo + 2*2);
148 for(
int ivc = 0; ivc <
NVC; ++ivc){
149 vt1[ivc] = buf_zp[
IDXBF(ivc, 0, ixyt)];
150 vt2[ivc] = buf_zp[
IDXBF(ivc, 1, ixyt)];
153 for(
int ic = 0; ic <
NC; ++ic){
155 for(
int ic2 = 0; ic2 <
NC; ++ic2){
156 ut[2*ic2 ] = u[
IDX2_G_R(ic2, ic, istu)];
157 ut[2*ic2+1] = u[
IDX2_G_I(ic2, ic, istu)];
159 wt1[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
161 wt1[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
163 wt2[0] =
MULT_UV_R(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
165 wt2[1] =
MULT_UV_I(ut[0], ut[1], ut[2], ut[3], ut[4], ut[5],
167 v2L[ic*2 +
ID1] += wt1[0];
168 v2L[ic*2+1 +
ID1] += wt1[1];
169 v2L[ic*2 +
ID2] += wt2[0];
170 v2L[ic*2+1 +
ID2] += wt2[1];
171 v2L[ic*2 +
ID3] += wt1[1];
172 v2L[ic*2+1 +
ID3] += -wt1[0];
173 v2L[ic*2 +
ID4] += -wt2[1];
174 v2L[ic*2+1 +
ID4] += wt2[0];
180 int ixyt =
ix + Nx * (
iy + Ny *
it);
182 for(
int ic = 0; ic <
NC; ++ic){
188 v2L[ic*2 +
ID1] += wt1[0];
189 v2L[ic*2+1 +
ID1] += wt1[1];
190 v2L[ic*2 +
ID2] += wt2[0];
191 v2L[ic*2+1 +
ID2] += wt2[1];
192 v2L[ic*2 +
ID3] += -wt1[1];
193 v2L[ic*2+1 +
ID3] += wt1[0];
194 v2L[ic*2 +
ID4] += wt2[1];
195 v2L[ic*2+1 +
ID4] += -wt2[0];