3 #define spinorFloat double
29 #define spinorFloat float
54 #endif // SPINOR_DOUBLE
58 #define c00_00_re C0.x
59 #define c01_01_re C0.y
60 #define c02_02_re C1.x
61 #define c10_10_re C1.y
62 #define c11_11_re C2.x
63 #define c12_12_re C2.y
64 #define c01_00_re C3.x
65 #define c01_00_im C3.y
66 #define c02_00_re C4.x
67 #define c02_00_im C4.y
68 #define c10_00_re C5.x
69 #define c10_00_im C5.y
70 #define c11_00_re C6.x
71 #define c11_00_im C6.y
72 #define c12_00_re C7.x
73 #define c12_00_im C7.y
74 #define c02_01_re C8.x
75 #define c02_01_im C8.y
76 #define c10_01_re C9.x
77 #define c10_01_im C9.y
78 #define c11_01_re C10.x
79 #define c11_01_im C10.y
80 #define c12_01_re C11.x
81 #define c12_01_im C11.y
82 #define c10_02_re C12.x
83 #define c10_02_im C12.y
84 #define c11_02_re C13.x
85 #define c11_02_im C13.y
86 #define c12_02_re C14.x
87 #define c12_02_im C14.y
88 #define c11_10_re C15.x
89 #define c11_10_im C15.y
90 #define c12_10_re C16.x
91 #define c12_10_im C16.y
92 #define c12_11_re C17.x
93 #define c12_11_im C17.y
95 #define c00_00_re C0.x
96 #define c01_01_re C0.y
97 #define c02_02_re C0.z
98 #define c10_10_re C0.w
99 #define c11_11_re C1.x
100 #define c12_12_re C1.y
101 #define c01_00_re C1.z
102 #define c01_00_im C1.w
103 #define c02_00_re C2.x
104 #define c02_00_im C2.y
105 #define c10_00_re C2.z
106 #define c10_00_im C2.w
107 #define c11_00_re C3.x
108 #define c11_00_im C3.y
109 #define c12_00_re C3.z
110 #define c12_00_im C3.w
111 #define c02_01_re C4.x
112 #define c02_01_im C4.y
113 #define c10_01_re C4.z
114 #define c10_01_im C4.w
115 #define c11_01_re C5.x
116 #define c11_01_im C5.y
117 #define c12_01_re C5.z
118 #define c12_01_im C5.w
119 #define c10_02_re C6.x
120 #define c10_02_im C6.y
121 #define c11_02_re C6.z
122 #define c11_02_im C6.w
123 #define c12_02_re C7.x
124 #define c12_02_im C7.y
125 #define c11_10_re C7.z
126 #define c11_10_im C7.w
127 #define c12_10_re C8.x
128 #define c12_10_im C8.y
129 #define c12_11_re C8.z
130 #define c12_11_im C8.w
131 #endif // CLOVER_DOUBLE
133 #define c00_01_re (+c01_00_re)
134 #define c00_01_im (-c01_00_im)
135 #define c00_02_re (+c02_00_re)
136 #define c00_02_im (-c02_00_im)
137 #define c01_02_re (+c02_01_re)
138 #define c01_02_im (-c02_01_im)
139 #define c00_10_re (+c10_00_re)
140 #define c00_10_im (-c10_00_im)
141 #define c01_10_re (+c10_01_re)
142 #define c01_10_im (-c10_01_im)
143 #define c02_10_re (+c10_02_re)
144 #define c02_10_im (-c10_02_im)
145 #define c00_11_re (+c11_00_re)
146 #define c00_11_im (-c11_00_im)
147 #define c01_11_re (+c11_01_re)
148 #define c01_11_im (-c11_01_im)
149 #define c02_11_re (+c11_02_re)
150 #define c02_11_im (-c11_02_im)
151 #define c10_11_re (+c11_10_re)
152 #define c10_11_im (-c11_10_im)
153 #define c00_12_re (+c12_00_re)
154 #define c00_12_im (-c12_00_im)
155 #define c01_12_re (+c12_01_re)
156 #define c01_12_im (-c12_01_im)
157 #define c02_12_re (+c12_02_re)
158 #define c02_12_im (-c12_02_im)
159 #define c10_12_re (+c12_10_re)
160 #define c10_12_im (-c12_10_im)
161 #define c11_12_re (+c12_11_re)
162 #define c11_12_im (-c12_11_im)
165 #define c20_20_re c00_00_re
166 #define c21_20_re c01_00_re
167 #define c21_20_im c01_00_im
168 #define c22_20_re c02_00_re
169 #define c22_20_im c02_00_im
170 #define c30_20_re c10_00_re
171 #define c30_20_im c10_00_im
172 #define c31_20_re c11_00_re
173 #define c31_20_im c11_00_im
174 #define c32_20_re c12_00_re
175 #define c32_20_im c12_00_im
176 #define c20_21_re c00_01_re
177 #define c20_21_im c00_01_im
178 #define c21_21_re c01_01_re
179 #define c22_21_re c02_01_re
180 #define c22_21_im c02_01_im
181 #define c30_21_re c10_01_re
182 #define c30_21_im c10_01_im
183 #define c31_21_re c11_01_re
184 #define c31_21_im c11_01_im
185 #define c32_21_re c12_01_re
186 #define c32_21_im c12_01_im
187 #define c20_22_re c00_02_re
188 #define c20_22_im c00_02_im
189 #define c21_22_re c01_02_re
190 #define c21_22_im c01_02_im
191 #define c22_22_re c02_02_re
192 #define c30_22_re c10_02_re
193 #define c30_22_im c10_02_im
194 #define c31_22_re c11_02_re
195 #define c31_22_im c11_02_im
196 #define c32_22_re c12_02_re
197 #define c32_22_im c12_02_im
198 #define c20_30_re c00_10_re
199 #define c20_30_im c00_10_im
200 #define c21_30_re c01_10_re
201 #define c21_30_im c01_10_im
202 #define c22_30_re c02_10_re
203 #define c22_30_im c02_10_im
204 #define c30_30_re c10_10_re
205 #define c31_30_re c11_10_re
206 #define c31_30_im c11_10_im
207 #define c32_30_re c12_10_re
208 #define c32_30_im c12_10_im
209 #define c20_31_re c00_11_re
210 #define c20_31_im c00_11_im
211 #define c21_31_re c01_11_re
212 #define c21_31_im c01_11_im
213 #define c22_31_re c02_11_re
214 #define c22_31_im c02_11_im
215 #define c30_31_re c10_11_re
216 #define c30_31_im c10_11_im
217 #define c31_31_re c11_11_re
218 #define c32_31_re c12_11_re
219 #define c32_31_im c12_11_im
220 #define c20_32_re c00_12_re
221 #define c20_32_im c00_12_im
222 #define c21_32_re c01_12_re
223 #define c21_32_im c01_12_im
224 #define c22_32_re c02_12_re
225 #define c22_32_im c02_12_im
226 #define c30_32_re c10_12_re
227 #define c30_32_im c10_12_im
228 #define c31_32_re c11_12_re
229 #define c31_32_im c11_12_im
230 #define c32_32_re c12_12_re
235 #define cinv00_00_re C0.x
236 #define cinv01_01_re C0.y
237 #define cinv02_02_re C1.x
238 #define cinv10_10_re C1.y
239 #define cinv11_11_re C2.x
240 #define cinv12_12_re C2.y
241 #define cinv01_00_re C3.x
242 #define cinv01_00_im C3.y
243 #define cinv02_00_re C4.x
244 #define cinv02_00_im C4.y
245 #define cinv10_00_re C5.x
246 #define cinv10_00_im C5.y
247 #define cinv11_00_re C6.x
248 #define cinv11_00_im C6.y
249 #define cinv12_00_re C7.x
250 #define cinv12_00_im C7.y
251 #define cinv02_01_re C8.x
252 #define cinv02_01_im C8.y
253 #define cinv10_01_re C9.x
254 #define cinv10_01_im C9.y
255 #define cinv11_01_re C10.x
256 #define cinv11_01_im C10.y
257 #define cinv12_01_re C11.x
258 #define cinv12_01_im C11.y
259 #define cinv10_02_re C12.x
260 #define cinv10_02_im C12.y
261 #define cinv11_02_re C13.x
262 #define cinv11_02_im C13.y
263 #define cinv12_02_re C14.x
264 #define cinv12_02_im C14.y
265 #define cinv11_10_re C15.x
266 #define cinv11_10_im C15.y
267 #define cinv12_10_re C16.x
268 #define cinv12_10_im C16.y
269 #define cinv12_11_re C17.x
270 #define cinv12_11_im C17.y
272 #define cinv00_00_re C0.x
273 #define cinv01_01_re C0.y
274 #define cinv02_02_re C0.z
275 #define cinv10_10_re C0.w
276 #define cinv11_11_re C1.x
277 #define cinv12_12_re C1.y
278 #define cinv01_00_re C1.z
279 #define cinv01_00_im C1.w
280 #define cinv02_00_re C2.x
281 #define cinv02_00_im C2.y
282 #define cinv10_00_re C2.z
283 #define cinv10_00_im C2.w
284 #define cinv11_00_re C3.x
285 #define cinv11_00_im C3.y
286 #define cinv12_00_re C3.z
287 #define cinv12_00_im C3.w
288 #define cinv02_01_re C4.x
289 #define cinv02_01_im C4.y
290 #define cinv10_01_re C4.z
291 #define cinv10_01_im C4.w
292 #define cinv11_01_re C5.x
293 #define cinv11_01_im C5.y
294 #define cinv12_01_re C5.z
295 #define cinv12_01_im C5.w
296 #define cinv10_02_re C6.x
297 #define cinv10_02_im C6.y
298 #define cinv11_02_re C6.z
299 #define cinv11_02_im C6.w
300 #define cinv12_02_re C7.x
301 #define cinv12_02_im C7.y
302 #define cinv11_10_re C7.z
303 #define cinv11_10_im C7.w
304 #define cinv12_10_re C8.x
305 #define cinv12_10_im C8.y
306 #define cinv12_11_re C8.z
307 #define cinv12_11_im C8.w
308 #endif // CLOVER_DOUBLE
310 #define cinv00_01_re (+cinv01_00_re)
311 #define cinv00_01_im (-cinv01_00_im)
312 #define cinv00_02_re (+cinv02_00_re)
313 #define cinv00_02_im (-cinv02_00_im)
314 #define cinv01_02_re (+cinv02_01_re)
315 #define cinv01_02_im (-cinv02_01_im)
316 #define cinv00_10_re (+cinv10_00_re)
317 #define cinv00_10_im (-cinv10_00_im)
318 #define cinv01_10_re (+cinv10_01_re)
319 #define cinv01_10_im (-cinv10_01_im)
320 #define cinv02_10_re (+cinv10_02_re)
321 #define cinv02_10_im (-cinv10_02_im)
322 #define cinv00_11_re (+cinv11_00_re)
323 #define cinv00_11_im (-cinv11_00_im)
324 #define cinv01_11_re (+cinv11_01_re)
325 #define cinv01_11_im (-cinv11_01_im)
326 #define cinv02_11_re (+cinv11_02_re)
327 #define cinv02_11_im (-cinv11_02_im)
328 #define cinv10_11_re (+cinv11_10_re)
329 #define cinv10_11_im (-cinv11_10_im)
330 #define cinv00_12_re (+cinv12_00_re)
331 #define cinv00_12_im (-cinv12_00_im)
332 #define cinv01_12_re (+cinv12_01_re)
333 #define cinv01_12_im (-cinv12_01_im)
334 #define cinv02_12_re (+cinv12_02_re)
335 #define cinv02_12_im (-cinv12_02_im)
336 #define cinv10_12_re (+cinv12_10_re)
337 #define cinv10_12_im (-cinv12_10_im)
338 #define cinv11_12_re (+cinv12_11_re)
339 #define cinv11_12_im (-cinv12_11_im)
342 #define cinv20_20_re cinv00_00_re
343 #define cinv21_20_re cinv01_00_re
344 #define cinv21_20_im cinv01_00_im
345 #define cinv22_20_re cinv02_00_re
346 #define cinv22_20_im cinv02_00_im
347 #define cinv30_20_re cinv10_00_re
348 #define cinv30_20_im cinv10_00_im
349 #define cinv31_20_re cinv11_00_re
350 #define cinv31_20_im cinv11_00_im
351 #define cinv32_20_re cinv12_00_re
352 #define cinv32_20_im cinv12_00_im
353 #define cinv20_21_re cinv00_01_re
354 #define cinv20_21_im cinv00_01_im
355 #define cinv21_21_re cinv01_01_re
356 #define cinv22_21_re cinv02_01_re
357 #define cinv22_21_im cinv02_01_im
358 #define cinv30_21_re cinv10_01_re
359 #define cinv30_21_im cinv10_01_im
360 #define cinv31_21_re cinv11_01_re
361 #define cinv31_21_im cinv11_01_im
362 #define cinv32_21_re cinv12_01_re
363 #define cinv32_21_im cinv12_01_im
364 #define cinv20_22_re cinv00_02_re
365 #define cinv20_22_im cinv00_02_im
366 #define cinv21_22_re cinv01_02_re
367 #define cinv21_22_im cinv01_02_im
368 #define cinv22_22_re cinv02_02_re
369 #define cinv30_22_re cinv10_02_re
370 #define cinv30_22_im cinv10_02_im
371 #define cinv31_22_re cinv11_02_re
372 #define cinv31_22_im cinv11_02_im
373 #define cinv32_22_re cinv12_02_re
374 #define cinv32_22_im cinv12_02_im
375 #define cinv20_30_re cinv00_10_re
376 #define cinv20_30_im cinv00_10_im
377 #define cinv21_30_re cinv01_10_re
378 #define cinv21_30_im cinv01_10_im
379 #define cinv22_30_re cinv02_10_re
380 #define cinv22_30_im cinv02_10_im
381 #define cinv30_30_re cinv10_10_re
382 #define cinv31_30_re cinv11_10_re
383 #define cinv31_30_im cinv11_10_im
384 #define cinv32_30_re cinv12_10_re
385 #define cinv32_30_im cinv12_10_im
386 #define cinv20_31_re cinv00_11_re
387 #define cinv20_31_im cinv00_11_im
388 #define cinv21_31_re cinv01_11_re
389 #define cinv21_31_im cinv01_11_im
390 #define cinv22_31_re cinv02_11_re
391 #define cinv22_31_im cinv02_11_im
392 #define cinv30_31_re cinv10_11_re
393 #define cinv30_31_im cinv10_11_im
394 #define cinv31_31_re cinv11_11_re
395 #define cinv32_31_re cinv12_11_re
396 #define cinv32_31_im cinv12_11_im
397 #define cinv20_32_re cinv00_12_re
398 #define cinv20_32_im cinv00_12_im
399 #define cinv21_32_re cinv01_12_re
400 #define cinv21_32_im cinv01_12_im
401 #define cinv22_32_re cinv02_12_re
402 #define cinv22_32_im cinv02_12_im
403 #define cinv30_32_re cinv10_12_re
404 #define cinv30_32_im cinv10_12_im
405 #define cinv31_32_re cinv11_12_re
406 #define cinv31_32_im cinv11_12_im
407 #define cinv32_32_re cinv12_12_re
447 WRITE_HALF_SPINOR(face_volume,
face_idx);
478 WRITE_HALF_SPINOR(face_volume,
face_idx);
509 WRITE_HALF_SPINOR(face_volume,
face_idx);
540 WRITE_HALF_SPINOR(face_volume,
face_idx);
576 WRITE_HALF_SPINOR(face_volume,
face_idx);
607 WRITE_HALF_SPINOR(face_volume,
face_idx);
638 WRITE_HALF_SPINOR(face_volume,
face_idx);
669 WRITE_HALF_SPINOR(face_volume,
face_idx);
#define APPLY_CLOVER_TWIST_INV(c, cinv, a, reg)