4 #define c00_01 (conj(c01_00)) 5 #define c00_02 (conj(c02_00)) 6 #define c01_02 (conj(c02_01)) 7 #define c00_10 (conj(c10_00)) 8 #define c01_10 (conj(c10_01)) 9 #define c02_10 (conj(c10_02)) 10 #define c00_11 (conj(c11_00)) 11 #define c01_11 (conj(c11_01)) 12 #define c02_11 (conj(c11_02)) 13 #define c10_11 (conj(c11_10)) 14 #define c00_12 (conj(c12_00)) 15 #define c01_12 (conj(c12_01)) 16 #define c02_12 (conj(c12_02)) 17 #define c10_12 (conj(c12_10)) 18 #define c11_12 (conj(c12_11)) 38 #define Clv(s1,c1,s2,c2)\ 39 (arg.C(0, parity, x_cb, s1+ch, s2+ch, c1, c2)) 41 #define InvClv(s1,c1,s2,c2)\ 44 template<
typename Float,
int fineSpin,
int fineColor,
int coarseColor,
typename Arg>
45 __device__ __host__
inline void applyInvClover(Arg &
arg,
int parity,
int x_cb) {
51 for (
int ch = 0; ch < 4; ch += 2) {
52 complex<Float> tri0, tri1, tri2, tri3, tri4, tri6, tri7, tri8, tri10, tri11, tri12;
53 Float
d, c00_00, c01_01, c02_02, c10_10, c11_11, c12_12;
54 complex<Float> c01_00, c02_00, c10_00, c11_00, c12_00;
55 complex<Float> c02_01, c10_01, c11_01, c12_01;
56 complex<Float> c10_02, c11_02, c12_02;
57 complex<Float> c11_10, c12_10;
58 complex<Float> c12_11;
61 tri0 = Clv(0,1,0,0)*Clv(0,0,0,0).real() + Clv(0,1,0,1)*Clv(0,1,0,0) + Clv(0,1,0,2)*Clv(0,2,0,0) + Clv(0,1,1,0)*Clv(1,0,0,0) + Clv(0,1,1,1)*Clv(1,1,0,0) + Clv(0,1,1,2)*Clv(1,2,0,0);
62 tri1 = Clv(0,2,0,0)*Clv(0,0,0,0).real() + Clv(0,2,0,2)*Clv(0,2,0,0) + Clv(0,2,0,1)*Clv(0,1,0,0) + Clv(0,2,1,0)*Clv(1,0,0,0) + Clv(0,2,1,1)*Clv(1,1,0,0) + Clv(0,2,1,2)*Clv(1,2,0,0);
63 tri3 = Clv(1,0,0,0)*Clv(0,0,0,0).real() + Clv(1,0,1,0)*Clv(1,0,0,0) + Clv(1,0,0,1)*Clv(0,1,0,0) + Clv(1,0,0,2)*Clv(0,2,0,0) + Clv(1,0,1,1)*Clv(1,1,0,0) + Clv(1,0,1,2)*Clv(1,2,0,0);
64 tri6 = Clv(1,1,0,0)*Clv(0,0,0,0).real() + Clv(1,1,1,1)*Clv(1,1,0,0) + Clv(1,1,0,1)*Clv(0,1,0,0) + Clv(1,1,0,2)*Clv(0,2,0,0) + Clv(1,1,1,0)*Clv(1,0,0,0) + Clv(1,1,1,2)*Clv(1,2,0,0);
65 tri10 = Clv(1,2,0,0)*Clv(0,0,0,0).real() + Clv(1,2,1,2)*Clv(1,2,0,0) + Clv(1,2,0,1)*Clv(0,1,0,0) + Clv(1,2,0,2)*Clv(0,2,0,0) + Clv(1,2,1,0)*Clv(1,0,0,0) + Clv(1,2,1,1)*Clv(1,1,0,0);
67 d =
arg.mu*
arg.mu + Clv(0,0,0,0).real()*Clv(0,0,0,0).real() +
norm(Clv(0,1,0,0)) +
norm(Clv(0,2,0,0)) +
norm(Clv(1,0,0,0)) +
norm(Clv(1,1,0,0)) +
norm(Clv(1,2,0,0));
71 tri2 = Clv(0,2,0,1)*Clv(0,1,0,1).real() + Clv(0,2,0,2)*Clv(0,2,0,1) + Clv(0,2,0,0)*Clv(0,0,0,1) + Clv(0,2,1,0)*Clv(1,0,0,1) + Clv(0,2,1,1)*Clv(1,1,0,1) + Clv(0,2,1,2)*Clv(1,2,0,1);
72 tri4 = Clv(1,0,0,1)*Clv(0,1,0,1).real() + Clv(1,0,1,0)*Clv(1,0,0,1) + Clv(1,0,0,0)*Clv(0,0,0,1) + Clv(1,0,0,2)*Clv(0,2,0,1) + Clv(1,0,1,1)*Clv(1,1,0,1) + Clv(1,0,1,2)*Clv(1,2,0,1);
73 tri7 = Clv(1,1,0,1)*Clv(0,1,0,1).real() + Clv(1,1,1,1)*Clv(1,1,0,1) + Clv(1,1,0,0)*Clv(0,0,0,1) + Clv(1,1,0,2)*Clv(0,2,0,1) + Clv(1,1,1,0)*Clv(1,0,0,1) + Clv(1,1,1,2)*Clv(1,2,0,1);
74 tri11 = Clv(1,2,0,1)*Clv(0,1,0,1).real() + Clv(1,2,1,2)*Clv(1,2,0,1) + Clv(1,2,0,0)*Clv(0,0,0,1) + Clv(1,2,0,2)*Clv(0,2,0,1) + Clv(1,2,1,0)*Clv(1,0,0,1) + Clv(1,2,1,1)*Clv(1,1,0,1);
76 d =
arg.mu*
arg.mu + Clv(0,1,0,1).real()*Clv(0,1,0,1).real() +
norm(Clv(0,0,0,1)) +
norm(Clv(0,2,0,1)) +
norm(Clv(1,0,0,1)) +
norm(Clv(1,1,0,1)) +
norm(Clv(1,2,0,1));
79 InvClv(0,1,0,0) = tri0;
81 tri5 = Clv(1,0,0,2)*Clv(0,2,0,2).real() + Clv(1,0,1,0)*Clv(1,0,0,2) + Clv(1,0,0,0)*Clv(0,0,0,2) + Clv(1,0,0,1)*Clv(0,1,0,2) + Clv(1,0,1,1)*Clv(1,1,0,2) + Clv(1,0,1,2)*Clv(1,2,0,2);
82 tri8 = Clv(1,1,0,2)*Clv(0,2,0,2).real() + Clv(1,1,1,1)*Clv(1,1,0,2) + Clv(1,1,0,0)*Clv(0,0,0,2) + Clv(1,1,0,1)*Clv(0,1,0,2) + Clv(1,1,1,0)*Clv(1,0,0,2) + Clv(1,1,1,2)*Clv(1,2,0,2);
83 tri12 = Clv(1,2,0,2)*Clv(0,2,0,2).real() + Clv(1,2,1,2)*Clv(1,2,0,2) + Clv(1,2,0,0)*Clv(0,0,0,2) + Clv(1,2,0,1)*Clv(0,1,0,2) + Clv(1,2,1,0)*Clv(1,0,0,2) + Clv(1,2,1,1)*Clv(1,1,0,2);
85 d =
arg.mu*
arg.mu + Clv(0,2,0,2).real()*Clv(0,2,0,2).real() +
norm(Clv(0,0,0,2)) +
norm(Clv(0,1,0,2)) +
norm(Clv(1,0,0,2)) +
norm(Clv(1,1,0,2)) +
norm(Clv(1,2,0,2));
88 InvClv(0,2,0,0) = tri1;
89 InvClv(0,2,0,1) = tri2;
91 tri9 = Clv(1,1,1,0)*Clv(1,0,1,0).real() + Clv(1,1,1,1)*Clv(1,1,1,0) + Clv(1,1,0,0)*Clv(0,0,1,0) + Clv(1,1,0,1)*Clv(0,1,1,0) + Clv(1,1,0,2)*Clv(0,2,1,0) + Clv(1,1,1,2)*Clv(1,2,1,0);
92 tri13 = Clv(1,2,1,0)*Clv(1,0,1,0).real() + Clv(1,2,1,2)*Clv(1,2,1,0) + Clv(1,2,0,0)*Clv(0,0,1,0) + Clv(1,2,0,1)*Clv(0,1,1,0) + Clv(1,2,0,2)*Clv(0,2,1,0) + Clv(1,2,1,1)*Clv(1,1,1,0);
94 d =
arg.mu*
arg.mu + Clv(1,0,1,0).real()*Clv(1,0,1,0).real() +
norm(Clv(0,0,1,0)) +
norm(Clv(0,1,1,0)) +
norm(Clv(0,2,1,0)) +
norm(Clv(1,1,1,0)) +
norm(Clv(1,2,1,0));
97 InvClv(1,0,0,0) = tri3;
99 tri14 = Clv(1,2,1,1)*Clv(1,1,1,1).real() + Clv(1,2,1,2)*Clv(1,2,1,1) + Clv(1,2,0,0)*Clv(0,0,1,1) + Clv(1,2,0,1)*Clv(0,1,1,1) + Clv(1,2,0,2)*Clv(0,2,1,1) + Clv(1,2,1,0)*Clv(1,0,1,1);
101 d =
arg.mu*
arg.mu + Clv(1,1,1,1).real()*Clv(1,1,1,1).real() +
norm(Clv(0,0,1,1)) +
norm(Clv(0,1,1,1)) +
norm(Clv(0,2,1,1)) +
norm(Clv(1,0,1,1)) +
norm(Clv(1,2,1,1));
105 d =
arg.mu*
arg.mu + Clv(1,2,1,2).real()*Clv(1,2,1,2).real() +
norm(Clv(0,0,1,2)) +
norm(Clv(0,1,1,2)) +
norm(Clv(0,2,1,2)) +
norm(Clv(1,0,1,2)) +
norm(Clv(1,1,1,2));
109 InvClv(1,2,1,1) = tri14;
110 InvClv(1,2,1,0) = tri13;
111 InvClv(1,2,0,2) = tri12;
112 InvClv(1,2,0,1) = tri11;
113 InvClv(1,2,0,0) = tri10;
114 InvClv(1,1,1,0) = tri9;
115 InvClv(1,1,0,2) = tri8;
116 InvClv(1,1,0,1) = tri7;
117 InvClv(1,1,0,0) = tri6;
118 InvClv(1,0,0,2) = tri5;
119 InvClv(1,0,0,1) = tri4;
124 InvClv(0,0,0,0) =
sqrt(InvClv(0,0,0,0));
125 tmp0 = 1. / InvClv(0,0,0,0);
126 InvClv(0,1,0,0) *=
tmp0;
127 InvClv(0,2,0,0) *=
tmp0;
128 InvClv(1,0,0,0) *=
tmp0;
129 InvClv(1,1,0,0) *=
tmp0;
130 InvClv(1,2,0,0) *=
tmp0;
133 InvClv(0,1,0,1) -=
norm(InvClv(0,1,0,0));
136 InvClv(0,2,0,1) -= InvClv(0,2,0,0)*InvClv(0,0,0,1);
137 InvClv(1,0,0,1) -= InvClv(1,0,0,0)*InvClv(0,0,0,1);
138 InvClv(1,1,0,1) -= InvClv(1,1,0,0)*InvClv(0,0,0,1);
139 InvClv(1,2,0,1) -= InvClv(1,2,0,0)*InvClv(0,0,0,1);
142 InvClv(0,2,0,2) -=
norm(InvClv(0,2,0,0));
145 InvClv(1,0,0,2) -= InvClv(1,0,0,0)*InvClv(0,0,0,2);
146 InvClv(1,1,0,2) -= InvClv(1,1,0,0)*InvClv(0,0,0,2);
147 InvClv(1,2,0,2) -= InvClv(1,2,0,0)*InvClv(0,0,0,2);
150 InvClv(1,0,1,0) -=
norm(InvClv(1,0,0,0));
153 InvClv(1,1,1,0) -= InvClv(1,1,0,0)*InvClv(0,0,1,0);
154 InvClv(1,2,1,0) -= InvClv(1,2,0,0)*InvClv(0,0,1,0);
157 InvClv(1,1,1,1) -=
norm(InvClv(1,1,0,0));
160 InvClv(1,2,1,1) -= InvClv(1,2,0,0)*InvClv(0,0,1,1);
163 InvClv(1,2,1,2) -=
norm(InvClv(1,2,0,0));
166 InvClv(0,1,0,1) =
sqrt(InvClv(0,1,0,1));
167 tmp1 = 1. / InvClv(0,1,0,1);
168 InvClv(0,2,0,1) *=
tmp1;
169 InvClv(1,0,0,1) *=
tmp1;
170 InvClv(1,1,0,1) *=
tmp1;
171 InvClv(1,2,0,1) *=
tmp1;
174 InvClv(0,2,0,2) -=
norm(InvClv(0,2,0,1));
177 InvClv(1,0,0,2) -= InvClv(1,0,0,1)*InvClv(0,1,0,2);
178 InvClv(1,1,0,2) -= InvClv(1,1,0,1)*InvClv(0,1,0,2);
179 InvClv(1,2,0,2) -= InvClv(1,2,0,1)*InvClv(0,1,0,2);
182 InvClv(1,0,1,0) -=
norm(InvClv(1,0,0,1));
185 InvClv(1,1,1,0) -= InvClv(1,1,0,1)*InvClv(0,1,1,0);
186 InvClv(1,2,1,0) -= InvClv(1,2,0,1)*InvClv(0,1,1,0);
189 InvClv(1,1,1,1) -=
norm(InvClv(1,1,0,1));
192 InvClv(1,2,1,1) -= InvClv(1,2,0,1)*InvClv(0,1,1,1);
195 InvClv(1,2,1,2) -=
norm(InvClv(1,2,0,1));
198 InvClv(0,2,0,2) =
sqrt(InvClv(0,2,0,2));
199 tmp2 = 1. / InvClv(0,2,0,2);
200 InvClv(1,0,0,2) *=
tmp2;
201 InvClv(1,1,0,2) *=
tmp2;
202 InvClv(1,2,0,2) *=
tmp2;
205 InvClv(1,0,1,0) -=
norm(InvClv(1,0,0,2));
208 InvClv(1,1,1,0) -= InvClv(1,1,0,2)*InvClv(0,2,1,0);
209 InvClv(1,2,1,0) -= InvClv(1,2,0,2)*InvClv(0,2,1,0);
212 InvClv(1,1,1,1) -=
norm(InvClv(1,1,0,2));
215 InvClv(1,2,1,1) -= InvClv(1,2,0,2)*InvClv(0,2,1,1);
218 InvClv(1,2,1,2) -=
norm(InvClv(1,2,0,2));
221 InvClv(1,0,1,0) =
sqrt(InvClv(1,0,1,0));
222 tmp3 = 1. / InvClv(1,0,1,0);
223 InvClv(1,1,1,0) *=
tmp3;
224 InvClv(1,2,1,0) *=
tmp3;
227 InvClv(1,1,1,1) -=
norm(InvClv(1,1,1,0));
230 InvClv(1,2,1,1) -= InvClv(1,2,1,0)*InvClv(1,0,1,1);
233 InvClv(1,2,1,2) -=
norm(InvClv(1,2,1,0));
236 InvClv(1,1,1,1) =
sqrt(InvClv(1,1,1,1));
237 tmp4 = 1. / InvClv(1,1,1,1);
238 InvClv(1,2,1,1) *=
tmp4;
241 InvClv(1,2,1,2) -=
norm(InvClv(1,2,1,1));
244 InvClv(1,2,1,2) =
sqrt(InvClv(1,2,1,2));
245 tmp5 = 1. / InvClv(1,2,1,2);
251 v1_0 = complex<Float>(
tmp0,0.);
252 v1_1 = InvClv(0,1,0,0)*(-
tmp1*
tmp0);
253 v1_2 = (InvClv(0,2,0,0)*
tmp0 + InvClv(0,2,0,1)*v1_1)*(-
tmp2);
254 v1_3 = (InvClv(1,0,0,0)*
tmp0 + InvClv(1,0,0,1)*v1_1 + InvClv(1,0,0,2)*v1_2)*(-
tmp3);
255 v1_4 = (InvClv(1,1,0,0)*
tmp0 + InvClv(1,1,0,1)*v1_1 + InvClv(1,1,0,2)*v1_2 + InvClv(1,1,1,0)*v1_3)*(-
tmp4);
256 v1_5 = (InvClv(1,2,0,0)*
tmp0 + InvClv(1,2,0,1)*v1_1 + InvClv(1,2,0,2)*v1_2 + InvClv(1,2,1,0)*v1_3 + InvClv(1,2,1,1)*v1_4)*(-
tmp5*
tmp5);
260 sum = v1_4 - InvClv(1,1,1,2)*v1_5;
263 sum = v1_3 - InvClv(1,0,1,1)*v1_4 - InvClv(1,0,1,2)*v1_5;
266 sum = v1_2 - InvClv(0,2,1,0)*v1_3 - InvClv(0,2,1,1)*v1_4 - InvClv(0,2,1,2)*v1_5;
269 sum = v1_1 - InvClv(0,1,0,2)*v1_2 - InvClv(0,1,1,0)*v1_3 - InvClv(0,1,1,1)*v1_4 - InvClv(0,1,1,2)*v1_5;
272 sum = v1_0 - InvClv(0,0,0,1)*v1_1 - InvClv(0,0,0,2)*v1_2 - InvClv(0,0,1,0)*v1_3 - InvClv(0,0,1,1)*v1_4 - InvClv(0,0,1,2)*v1_5;
275 InvClv(0,0,0,0) = v1_0.real();
276 InvClv(0,1,0,0) = v1_1;
277 InvClv(0,2,0,0) = v1_2;
278 InvClv(1,0,0,0) = v1_3;
279 InvClv(1,1,0,0) = v1_4;
280 InvClv(1,2,0,0) = v1_5;
283 v1_1 = complex<Float>(
tmp1,0.);
284 v1_2 = InvClv(0,2,0,1)*(-
tmp2*
tmp1);
285 v1_3 = (InvClv(1,0,0,1)*
tmp1 + InvClv(1,0,0,2)*v1_2)*(-
tmp3);
286 v1_4 = (InvClv(1,1,0,1)*
tmp1 + InvClv(1,1,0,2)*v1_2 + InvClv(1,1,1,0)*v1_3)*(-
tmp4);
287 v1_5 = (InvClv(1,2,0,1)*
tmp1 + InvClv(1,2,0,2)*v1_2 + InvClv(1,2,1,0)*v1_3 + InvClv(1,2,1,1)*v1_4)*(-
tmp5*
tmp5);
292 sum = v1_4 - InvClv(1,1,1,2)*v1_5;
295 sum = v1_3 - InvClv(1,0,1,1)*v1_4 - InvClv(1,0,1,2)*v1_5;
298 sum = v1_2 - InvClv(0,2,1,0)*v1_3 - InvClv(0,2,1,1)*v1_4 - InvClv(0,2,1,2)*v1_5;
301 sum = v1_1 - InvClv(0,1,0,2)*v1_2 - InvClv(0,1,1,0)*v1_3 - InvClv(0,1,1,1)*v1_4 - InvClv(0,1,1,2)*v1_5;
304 InvClv(0,1,0,1) = v1_1.real();
305 InvClv(0,2,0,1) = v1_2;
306 InvClv(1,0,0,1) = v1_3;
307 InvClv(1,1,0,1) = v1_4;
308 InvClv(1,2,0,1) = v1_5;
311 v1_2 = complex<Float>(
tmp2,0.);
312 v1_3 = InvClv(1,0,0,2)*(-
tmp2*
tmp3);
313 v1_4 = (InvClv(1,1,0,2)*
tmp2 + InvClv(1,1,1,0)*v1_3)*(-
tmp4);
314 v1_5 = (InvClv(1,2,0,2)*
tmp2 + InvClv(1,2,1,0)*v1_3 + InvClv(1,2,1,1)*v1_4)*(-
tmp5*
tmp5);
319 sum = v1_4 - InvClv(1,1,1,2)*v1_5;
322 sum = v1_3 - InvClv(1,0,1,1)*v1_4 - InvClv(1,0,1,2)*v1_5;
325 sum = v1_2 - InvClv(0,2,1,0)*v1_3 - InvClv(0,2,1,1)*v1_4 - InvClv(0,2,1,2)*v1_5;
328 InvClv(0,2,0,2) = v1_2.real();
329 InvClv(1,0,0,2) = v1_3;
330 InvClv(1,1,0,2) = v1_4;
331 InvClv(1,2,0,2) = v1_5;
334 v1_3 = complex<Float>(
tmp3,0.);
335 v1_4 = InvClv(1,1,1,0)*(-
tmp3*
tmp4);
336 v1_5 = (InvClv(1,2,1,0)*
tmp3 + InvClv(1,2,1,1)*v1_4)*(-
tmp5*
tmp5);
341 sum = v1_4 - InvClv(1,1,1,2)*v1_5;
344 sum = v1_3 - InvClv(1,0,1,1)*v1_4 - InvClv(1,0,1,2)*v1_5;
347 InvClv(1,0,1,0) = v1_3.real();
348 InvClv(1,1,1,0) = v1_4;
349 InvClv(1,2,1,0) = v1_5;
352 v1_4 = complex<Float>(
tmp4,0.);
358 sum = v1_4 - InvClv(1,1,1,2)*v1_5;
361 InvClv(1,1,1,1) = v1_4.real();
362 InvClv(1,2,1,1) = v1_5;
372 for(
int ic_c = 0; ic_c < coarseColor; ic_c++) {
374 arg.AV(
parity,x_cb,ch,0,ic_c) += InvClv(0, 0, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
375 + InvClv(0, 0, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
376 + InvClv(0, 0, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
377 + InvClv(0, 0, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
378 + InvClv(0, 0, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
379 + InvClv(0, 0, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
381 arg.AV(
parity,x_cb,ch,1,ic_c) += InvClv(0, 1, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
382 + InvClv(0, 1, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
383 + InvClv(0, 1, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
384 + InvClv(0, 1, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
385 + InvClv(0, 1, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
386 + InvClv(0, 1, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
388 arg.AV(
parity,x_cb,ch,2,ic_c) += InvClv(0, 2, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
389 + InvClv(0, 2, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
390 + InvClv(0, 2, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
391 + InvClv(0, 2, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
392 + InvClv(0, 2, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
393 + InvClv(0, 2, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
395 arg.AV(
parity,x_cb,ch+1,0,ic_c)+= InvClv(1, 0, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
396 + InvClv(1, 0, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
397 + InvClv(1, 0, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
398 + InvClv(1, 0, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
399 + InvClv(1, 0, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
400 + InvClv(1, 0, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
402 arg.AV(
parity,x_cb,ch+1,1,ic_c)+= InvClv(1, 1, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
403 + InvClv(1, 1, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
404 + InvClv(1, 1, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
405 + InvClv(1, 1, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
406 + InvClv(1, 1, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
407 + InvClv(1, 1, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
409 arg.AV(
parity,x_cb,ch+1,2,ic_c)+= InvClv(1, 2, 0, 0) *
arg.UV(
parity, x_cb, ch, 0, ic_c)
410 + InvClv(1, 2, 0, 1) *
arg.UV(
parity, x_cb, ch, 1, ic_c)
411 + InvClv(1, 2, 0, 2) *
arg.UV(
parity, x_cb, ch, 2, ic_c)
412 + InvClv(1, 2, 1, 0) *
arg.UV(
parity, x_cb, ch+1, 0, ic_c)
413 + InvClv(1, 2, 1, 1) *
arg.UV(
parity, x_cb, ch+1, 1, ic_c)
414 + InvClv(1, 2, 1, 2) *
arg.UV(
parity, x_cb, ch+1, 2, ic_c);
__host__ __device__ ValueType norm(const complex< ValueType > &z)
Returns the magnitude of z squared.
__host__ __device__ void sum(double &a, double &b)
__host__ __device__ ValueType arg(const complex< ValueType > &z)
Returns the phase angle of z.
static __inline__ size_t size_t d