Grid 0.7.0
Gamma.h
Go to the documentation of this file.
1#ifndef GRID_QCD_GAMMA_H
2#define GRID_QCD_GAMMA_H
3
4// code generated by the Mathematica notebook gamma-gen/gamma-gen.nb
5
6#include <array>
9
10class Gamma {
11 public:
12 GRID_SERIALIZABLE_ENUM(Algebra, undef,
13 MinusGamma5 , 0,
14 Gamma5 , 1,
15 MinusGammaT , 2,
16 GammaT , 3,
17 MinusGammaTGamma5, 4,
18 GammaTGamma5 , 5,
19 MinusGammaX , 6,
20 GammaX , 7,
21 MinusGammaXGamma5, 8,
22 GammaXGamma5 , 9,
23 MinusGammaY , 10,
24 GammaY , 11,
25 MinusGammaYGamma5, 12,
26 GammaYGamma5 , 13,
27 MinusGammaZ , 14,
28 GammaZ , 15,
29 MinusGammaZGamma5, 16,
30 GammaZGamma5 , 17,
31 MinusIdentity , 18,
32 Identity , 19,
33 MinusSigmaXT , 20,
34 SigmaXT , 21,
35 MinusSigmaXY , 22,
36 SigmaXY , 23,
37 MinusSigmaXZ , 24,
38 SigmaXZ , 25,
39 MinusSigmaYT , 26,
40 SigmaYT , 27,
41 MinusSigmaYZ , 28,
42 SigmaYZ , 29,
43 MinusSigmaZT , 30,
44 SigmaZT , 31);
45 static constexpr unsigned int nGamma = 32;
46 static const std::array<const char *, nGamma> name;
47 static const std::array<std::array<Algebra, nGamma>, nGamma> mul;
48 static const std::array<Algebra, nGamma> adj;
49 static const std::array<const Gamma, 4> gmu;
50 static const std::array<const Gamma, 16> gall;
51 Algebra g;
52 public:
53 accelerator Gamma(Algebra initg): g(initg) {}
54};
55
56template<class vtype>
58{
59 ret(0) = -rhs(0);
60 ret(1) = -rhs(1);
61 ret(2) = rhs(2);
62 ret(3) = rhs(3);
63};
64
65template<class vtype>
67{
68 for(unsigned int i = 0; i < Ns; ++i)
69 {
70 ret(0, i) = -rhs(0, i);
71 ret(1, i) = -rhs(1, i);
72 ret(2, i) = rhs(2, i);
73 ret(3, i) = rhs(3, i);
74 }
75};
76
77template<class vtype>
79{
80 for(unsigned int i = 0; i < Ns; ++i)
81 {
82 ret(i, 0) = -rhs(i, 0);
83 ret(i, 1) = -rhs(i, 1);
84 ret(i, 2) = rhs(i, 2);
85 ret(i, 3) = rhs(i, 3);
86 }
87};
88
89template<class vtype>
91{
92 ret(0) = rhs(0);
93 ret(1) = rhs(1);
94 ret(2) = -rhs(2);
95 ret(3) = -rhs(3);
96};
97
98template<class vtype>
100{
101 for(unsigned int i = 0; i < Ns; ++i)
102 {
103 ret(0, i) = rhs(0, i);
104 ret(1, i) = rhs(1, i);
105 ret(2, i) = -rhs(2, i);
106 ret(3, i) = -rhs(3, i);
107 }
108};
109
110template<class vtype>
112{
113 for(unsigned int i = 0; i < Ns; ++i)
114 {
115 ret(i, 0) = rhs(i, 0);
116 ret(i, 1) = rhs(i, 1);
117 ret(i, 2) = -rhs(i, 2);
118 ret(i, 3) = -rhs(i, 3);
119 }
120};
121
122template<class vtype>
124{
125 ret(0) = -rhs(2);
126 ret(1) = -rhs(3);
127 ret(2) = -rhs(0);
128 ret(3) = -rhs(1);
129};
130
131template<class vtype>
133{
134 for(unsigned int i = 0; i < Ns; ++i)
135 {
136 ret(0, i) = -rhs(2, i);
137 ret(1, i) = -rhs(3, i);
138 ret(2, i) = -rhs(0, i);
139 ret(3, i) = -rhs(1, i);
140 }
141};
142
143template<class vtype>
145{
146 for(unsigned int i = 0; i < Ns; ++i)
147 {
148 ret(i, 0) = -rhs(i, 2);
149 ret(i, 1) = -rhs(i, 3);
150 ret(i, 2) = -rhs(i, 0);
151 ret(i, 3) = -rhs(i, 1);
152 }
153};
154
155template<class vtype>
157{
158 ret(0) = rhs(2);
159 ret(1) = rhs(3);
160 ret(2) = rhs(0);
161 ret(3) = rhs(1);
162};
163
164template<class vtype>
166{
167 for(unsigned int i = 0; i < Ns; ++i)
168 {
169 ret(0, i) = rhs(2, i);
170 ret(1, i) = rhs(3, i);
171 ret(2, i) = rhs(0, i);
172 ret(3, i) = rhs(1, i);
173 }
174};
175
176template<class vtype>
178{
179 for(unsigned int i = 0; i < Ns; ++i)
180 {
181 ret(i, 0) = rhs(i, 2);
182 ret(i, 1) = rhs(i, 3);
183 ret(i, 2) = rhs(i, 0);
184 ret(i, 3) = rhs(i, 1);
185 }
186};
187
188template<class vtype>
190{
191 ret(0) = rhs(2);
192 ret(1) = rhs(3);
193 ret(2) = -rhs(0);
194 ret(3) = -rhs(1);
195};
196
197template<class vtype>
199{
200 for(unsigned int i = 0; i < Ns; ++i)
201 {
202 ret(0, i) = rhs(2, i);
203 ret(1, i) = rhs(3, i);
204 ret(2, i) = -rhs(0, i);
205 ret(3, i) = -rhs(1, i);
206 }
207};
208
209template<class vtype>
211{
212 for(unsigned int i = 0; i < Ns; ++i)
213 {
214 ret(i, 0) = -rhs(i, 2);
215 ret(i, 1) = -rhs(i, 3);
216 ret(i, 2) = rhs(i, 0);
217 ret(i, 3) = rhs(i, 1);
218 }
219};
220
221template<class vtype>
223{
224 ret(0) = -rhs(2);
225 ret(1) = -rhs(3);
226 ret(2) = rhs(0);
227 ret(3) = rhs(1);
228};
229
230template<class vtype>
232{
233 for(unsigned int i = 0; i < Ns; ++i)
234 {
235 ret(0, i) = -rhs(2, i);
236 ret(1, i) = -rhs(3, i);
237 ret(2, i) = rhs(0, i);
238 ret(3, i) = rhs(1, i);
239 }
240};
241
242template<class vtype>
244{
245 for(unsigned int i = 0; i < Ns; ++i)
246 {
247 ret(i, 0) = rhs(i, 2);
248 ret(i, 1) = rhs(i, 3);
249 ret(i, 2) = -rhs(i, 0);
250 ret(i, 3) = -rhs(i, 1);
251 }
252};
253
254template<class vtype>
256{
257 ret(0) = timesMinusI(rhs(3));
258 ret(1) = timesMinusI(rhs(2));
259 ret(2) = timesI(rhs(1));
260 ret(3) = timesI(rhs(0));
261};
262
263template<class vtype>
265{
266 for(unsigned int i = 0; i < Ns; ++i)
267 {
268 ret(0, i) = timesMinusI(rhs(3, i));
269 ret(1, i) = timesMinusI(rhs(2, i));
270 ret(2, i) = timesI(rhs(1, i));
271 ret(3, i) = timesI(rhs(0, i));
272 }
273};
274
275template<class vtype>
277{
278 for(unsigned int i = 0; i < Ns; ++i)
279 {
280 ret(i, 0) = timesI(rhs(i, 3));
281 ret(i, 1) = timesI(rhs(i, 2));
282 ret(i, 2) = timesMinusI(rhs(i, 1));
283 ret(i, 3) = timesMinusI(rhs(i, 0));
284 }
285};
286
287template<class vtype>
289{
290 ret(0) = timesI(rhs(3));
291 ret(1) = timesI(rhs(2));
292 ret(2) = timesMinusI(rhs(1));
293 ret(3) = timesMinusI(rhs(0));
294};
295
296template<class vtype>
298{
299 for(unsigned int i = 0; i < Ns; ++i)
300 {
301 ret(0, i) = timesI(rhs(3, i));
302 ret(1, i) = timesI(rhs(2, i));
303 ret(2, i) = timesMinusI(rhs(1, i));
304 ret(3, i) = timesMinusI(rhs(0, i));
305 }
306};
307
308template<class vtype>
310{
311 for(unsigned int i = 0; i < Ns; ++i)
312 {
313 ret(i, 0) = timesMinusI(rhs(i, 3));
314 ret(i, 1) = timesMinusI(rhs(i, 2));
315 ret(i, 2) = timesI(rhs(i, 1));
316 ret(i, 3) = timesI(rhs(i, 0));
317 }
318};
319
320template<class vtype>
322{
323 ret(0) = timesI(rhs(3));
324 ret(1) = timesI(rhs(2));
325 ret(2) = timesI(rhs(1));
326 ret(3) = timesI(rhs(0));
327};
328
329template<class vtype>
331{
332 for(unsigned int i = 0; i < Ns; ++i)
333 {
334 ret(0, i) = timesI(rhs(3, i));
335 ret(1, i) = timesI(rhs(2, i));
336 ret(2, i) = timesI(rhs(1, i));
337 ret(3, i) = timesI(rhs(0, i));
338 }
339};
340
341template<class vtype>
343{
344 for(unsigned int i = 0; i < Ns; ++i)
345 {
346 ret(i, 0) = timesI(rhs(i, 3));
347 ret(i, 1) = timesI(rhs(i, 2));
348 ret(i, 2) = timesI(rhs(i, 1));
349 ret(i, 3) = timesI(rhs(i, 0));
350 }
351};
352
353template<class vtype>
355{
356 ret(0) = timesMinusI(rhs(3));
357 ret(1) = timesMinusI(rhs(2));
358 ret(2) = timesMinusI(rhs(1));
359 ret(3) = timesMinusI(rhs(0));
360};
361
362template<class vtype>
364{
365 for(unsigned int i = 0; i < Ns; ++i)
366 {
367 ret(0, i) = timesMinusI(rhs(3, i));
368 ret(1, i) = timesMinusI(rhs(2, i));
369 ret(2, i) = timesMinusI(rhs(1, i));
370 ret(3, i) = timesMinusI(rhs(0, i));
371 }
372};
373
374template<class vtype>
376{
377 for(unsigned int i = 0; i < Ns; ++i)
378 {
379 ret(i, 0) = timesMinusI(rhs(i, 3));
380 ret(i, 1) = timesMinusI(rhs(i, 2));
381 ret(i, 2) = timesMinusI(rhs(i, 1));
382 ret(i, 3) = timesMinusI(rhs(i, 0));
383 }
384};
385
386template<class vtype>
388{
389 ret(0) = rhs(3);
390 ret(1) = -rhs(2);
391 ret(2) = -rhs(1);
392 ret(3) = rhs(0);
393};
394
395template<class vtype>
397{
398 for(unsigned int i = 0; i < Ns; ++i)
399 {
400 ret(0, i) = rhs(3, i);
401 ret(1, i) = -rhs(2, i);
402 ret(2, i) = -rhs(1, i);
403 ret(3, i) = rhs(0, i);
404 }
405};
406
407template<class vtype>
409{
410 for(unsigned int i = 0; i < Ns; ++i)
411 {
412 ret(i, 0) = rhs(i, 3);
413 ret(i, 1) = -rhs(i, 2);
414 ret(i, 2) = -rhs(i, 1);
415 ret(i, 3) = rhs(i, 0);
416 }
417};
418
419template<class vtype>
421{
422 ret(0) = -rhs(3);
423 ret(1) = rhs(2);
424 ret(2) = rhs(1);
425 ret(3) = -rhs(0);
426};
427
428template<class vtype>
430{
431 for(unsigned int i = 0; i < Ns; ++i)
432 {
433 ret(0, i) = -rhs(3, i);
434 ret(1, i) = rhs(2, i);
435 ret(2, i) = rhs(1, i);
436 ret(3, i) = -rhs(0, i);
437 }
438};
439
440template<class vtype>
442{
443 for(unsigned int i = 0; i < Ns; ++i)
444 {
445 ret(i, 0) = -rhs(i, 3);
446 ret(i, 1) = rhs(i, 2);
447 ret(i, 2) = rhs(i, 1);
448 ret(i, 3) = -rhs(i, 0);
449 }
450};
451
452template<class vtype>
454{
455 ret(0) = -rhs(3);
456 ret(1) = rhs(2);
457 ret(2) = -rhs(1);
458 ret(3) = rhs(0);
459};
460
461template<class vtype>
463{
464 for(unsigned int i = 0; i < Ns; ++i)
465 {
466 ret(0, i) = -rhs(3, i);
467 ret(1, i) = rhs(2, i);
468 ret(2, i) = -rhs(1, i);
469 ret(3, i) = rhs(0, i);
470 }
471};
472
473template<class vtype>
475{
476 for(unsigned int i = 0; i < Ns; ++i)
477 {
478 ret(i, 0) = rhs(i, 3);
479 ret(i, 1) = -rhs(i, 2);
480 ret(i, 2) = rhs(i, 1);
481 ret(i, 3) = -rhs(i, 0);
482 }
483};
484
485template<class vtype>
487{
488 ret(0) = rhs(3);
489 ret(1) = -rhs(2);
490 ret(2) = rhs(1);
491 ret(3) = -rhs(0);
492};
493
494template<class vtype>
496{
497 for(unsigned int i = 0; i < Ns; ++i)
498 {
499 ret(0, i) = rhs(3, i);
500 ret(1, i) = -rhs(2, i);
501 ret(2, i) = rhs(1, i);
502 ret(3, i) = -rhs(0, i);
503 }
504};
505
506template<class vtype>
508{
509 for(unsigned int i = 0; i < Ns; ++i)
510 {
511 ret(i, 0) = -rhs(i, 3);
512 ret(i, 1) = rhs(i, 2);
513 ret(i, 2) = -rhs(i, 1);
514 ret(i, 3) = rhs(i, 0);
515 }
516};
517
518template<class vtype>
520{
521 ret(0) = timesMinusI(rhs(2));
522 ret(1) = timesI(rhs(3));
523 ret(2) = timesI(rhs(0));
524 ret(3) = timesMinusI(rhs(1));
525};
526
527template<class vtype>
529{
530 for(unsigned int i = 0; i < Ns; ++i)
531 {
532 ret(0, i) = timesMinusI(rhs(2, i));
533 ret(1, i) = timesI(rhs(3, i));
534 ret(2, i) = timesI(rhs(0, i));
535 ret(3, i) = timesMinusI(rhs(1, i));
536 }
537};
538
539template<class vtype>
541{
542 for(unsigned int i = 0; i < Ns; ++i)
543 {
544 ret(i, 0) = timesI(rhs(i, 2));
545 ret(i, 1) = timesMinusI(rhs(i, 3));
546 ret(i, 2) = timesMinusI(rhs(i, 0));
547 ret(i, 3) = timesI(rhs(i, 1));
548 }
549};
550
551template<class vtype>
553{
554 ret(0) = timesI(rhs(2));
555 ret(1) = timesMinusI(rhs(3));
556 ret(2) = timesMinusI(rhs(0));
557 ret(3) = timesI(rhs(1));
558};
559
560template<class vtype>
562{
563 for(unsigned int i = 0; i < Ns; ++i)
564 {
565 ret(0, i) = timesI(rhs(2, i));
566 ret(1, i) = timesMinusI(rhs(3, i));
567 ret(2, i) = timesMinusI(rhs(0, i));
568 ret(3, i) = timesI(rhs(1, i));
569 }
570};
571
572template<class vtype>
574{
575 for(unsigned int i = 0; i < Ns; ++i)
576 {
577 ret(i, 0) = timesMinusI(rhs(i, 2));
578 ret(i, 1) = timesI(rhs(i, 3));
579 ret(i, 2) = timesI(rhs(i, 0));
580 ret(i, 3) = timesMinusI(rhs(i, 1));
581 }
582};
583
584template<class vtype>
586{
587 ret(0) = timesI(rhs(2));
588 ret(1) = timesMinusI(rhs(3));
589 ret(2) = timesI(rhs(0));
590 ret(3) = timesMinusI(rhs(1));
591};
592
593template<class vtype>
595{
596 for(unsigned int i = 0; i < Ns; ++i)
597 {
598 ret(0, i) = timesI(rhs(2, i));
599 ret(1, i) = timesMinusI(rhs(3, i));
600 ret(2, i) = timesI(rhs(0, i));
601 ret(3, i) = timesMinusI(rhs(1, i));
602 }
603};
604
605template<class vtype>
607{
608 for(unsigned int i = 0; i < Ns; ++i)
609 {
610 ret(i, 0) = timesI(rhs(i, 2));
611 ret(i, 1) = timesMinusI(rhs(i, 3));
612 ret(i, 2) = timesI(rhs(i, 0));
613 ret(i, 3) = timesMinusI(rhs(i, 1));
614 }
615};
616
617template<class vtype>
619{
620 ret(0) = timesMinusI(rhs(2));
621 ret(1) = timesI(rhs(3));
622 ret(2) = timesMinusI(rhs(0));
623 ret(3) = timesI(rhs(1));
624};
625
626template<class vtype>
628{
629 for(unsigned int i = 0; i < Ns; ++i)
630 {
631 ret(0, i) = timesMinusI(rhs(2, i));
632 ret(1, i) = timesI(rhs(3, i));
633 ret(2, i) = timesMinusI(rhs(0, i));
634 ret(3, i) = timesI(rhs(1, i));
635 }
636};
637
638template<class vtype>
640{
641 for(unsigned int i = 0; i < Ns; ++i)
642 {
643 ret(i, 0) = timesMinusI(rhs(i, 2));
644 ret(i, 1) = timesI(rhs(i, 3));
645 ret(i, 2) = timesMinusI(rhs(i, 0));
646 ret(i, 3) = timesI(rhs(i, 1));
647 }
648};
649
650template<class vtype>
652{
653 ret(0) = -rhs(0);
654 ret(1) = -rhs(1);
655 ret(2) = -rhs(2);
656 ret(3) = -rhs(3);
657};
658
659template<class vtype>
661{
662 for(unsigned int i = 0; i < Ns; ++i)
663 {
664 ret(0, i) = -rhs(0, i);
665 ret(1, i) = -rhs(1, i);
666 ret(2, i) = -rhs(2, i);
667 ret(3, i) = -rhs(3, i);
668 }
669};
670
671template<class vtype>
673{
674 for(unsigned int i = 0; i < Ns; ++i)
675 {
676 ret(i, 0) = -rhs(i, 0);
677 ret(i, 1) = -rhs(i, 1);
678 ret(i, 2) = -rhs(i, 2);
679 ret(i, 3) = -rhs(i, 3);
680 }
681};
682
683template<class vtype>
685{
686 ret(0) = rhs(0);
687 ret(1) = rhs(1);
688 ret(2) = rhs(2);
689 ret(3) = rhs(3);
690};
691
692template<class vtype>
694{
695 for(unsigned int i = 0; i < Ns; ++i)
696 {
697 ret(0, i) = rhs(0, i);
698 ret(1, i) = rhs(1, i);
699 ret(2, i) = rhs(2, i);
700 ret(3, i) = rhs(3, i);
701 }
702};
703
704template<class vtype>
706{
707 for(unsigned int i = 0; i < Ns; ++i)
708 {
709 ret(i, 0) = rhs(i, 0);
710 ret(i, 1) = rhs(i, 1);
711 ret(i, 2) = rhs(i, 2);
712 ret(i, 3) = rhs(i, 3);
713 }
714};
715
716template<class vtype>
718{
719 ret(0) = timesMinusI(rhs(1));
720 ret(1) = timesMinusI(rhs(0));
721 ret(2) = timesI(rhs(3));
722 ret(3) = timesI(rhs(2));
723};
724
725template<class vtype>
727{
728 for(unsigned int i = 0; i < Ns; ++i)
729 {
730 ret(0, i) = timesMinusI(rhs(1, i));
731 ret(1, i) = timesMinusI(rhs(0, i));
732 ret(2, i) = timesI(rhs(3, i));
733 ret(3, i) = timesI(rhs(2, i));
734 }
735};
736
737template<class vtype>
739{
740 for(unsigned int i = 0; i < Ns; ++i)
741 {
742 ret(i, 0) = timesMinusI(rhs(i, 1));
743 ret(i, 1) = timesMinusI(rhs(i, 0));
744 ret(i, 2) = timesI(rhs(i, 3));
745 ret(i, 3) = timesI(rhs(i, 2));
746 }
747};
748
749template<class vtype>
751{
752 ret(0) = timesI(rhs(1));
753 ret(1) = timesI(rhs(0));
754 ret(2) = timesMinusI(rhs(3));
755 ret(3) = timesMinusI(rhs(2));
756};
757
758template<class vtype>
760{
761 for(unsigned int i = 0; i < Ns; ++i)
762 {
763 ret(0, i) = timesI(rhs(1, i));
764 ret(1, i) = timesI(rhs(0, i));
765 ret(2, i) = timesMinusI(rhs(3, i));
766 ret(3, i) = timesMinusI(rhs(2, i));
767 }
768};
769
770template<class vtype>
772{
773 for(unsigned int i = 0; i < Ns; ++i)
774 {
775 ret(i, 0) = timesI(rhs(i, 1));
776 ret(i, 1) = timesI(rhs(i, 0));
777 ret(i, 2) = timesMinusI(rhs(i, 3));
778 ret(i, 3) = timesMinusI(rhs(i, 2));
779 }
780};
781
782template<class vtype>
784{
785 ret(0) = timesI(rhs(0));
786 ret(1) = timesMinusI(rhs(1));
787 ret(2) = timesI(rhs(2));
788 ret(3) = timesMinusI(rhs(3));
789};
790
791template<class vtype>
793{
794 for(unsigned int i = 0; i < Ns; ++i)
795 {
796 ret(0, i) = timesI(rhs(0, i));
797 ret(1, i) = timesMinusI(rhs(1, i));
798 ret(2, i) = timesI(rhs(2, i));
799 ret(3, i) = timesMinusI(rhs(3, i));
800 }
801};
802
803template<class vtype>
805{
806 for(unsigned int i = 0; i < Ns; ++i)
807 {
808 ret(i, 0) = timesI(rhs(i, 0));
809 ret(i, 1) = timesMinusI(rhs(i, 1));
810 ret(i, 2) = timesI(rhs(i, 2));
811 ret(i, 3) = timesMinusI(rhs(i, 3));
812 }
813};
814
815template<class vtype>
817{
818 ret(0) = timesMinusI(rhs(0));
819 ret(1) = timesI(rhs(1));
820 ret(2) = timesMinusI(rhs(2));
821 ret(3) = timesI(rhs(3));
822};
823
824template<class vtype>
826{
827 for(unsigned int i = 0; i < Ns; ++i)
828 {
829 ret(0, i) = timesMinusI(rhs(0, i));
830 ret(1, i) = timesI(rhs(1, i));
831 ret(2, i) = timesMinusI(rhs(2, i));
832 ret(3, i) = timesI(rhs(3, i));
833 }
834};
835
836template<class vtype>
838{
839 for(unsigned int i = 0; i < Ns; ++i)
840 {
841 ret(i, 0) = timesMinusI(rhs(i, 0));
842 ret(i, 1) = timesI(rhs(i, 1));
843 ret(i, 2) = timesMinusI(rhs(i, 2));
844 ret(i, 3) = timesI(rhs(i, 3));
845 }
846};
847
848template<class vtype>
850{
851 ret(0) = rhs(1);
852 ret(1) = -rhs(0);
853 ret(2) = rhs(3);
854 ret(3) = -rhs(2);
855};
856
857template<class vtype>
859{
860 for(unsigned int i = 0; i < Ns; ++i)
861 {
862 ret(0, i) = rhs(1, i);
863 ret(1, i) = -rhs(0, i);
864 ret(2, i) = rhs(3, i);
865 ret(3, i) = -rhs(2, i);
866 }
867};
868
869template<class vtype>
871{
872 for(unsigned int i = 0; i < Ns; ++i)
873 {
874 ret(i, 0) = -rhs(i, 1);
875 ret(i, 1) = rhs(i, 0);
876 ret(i, 2) = -rhs(i, 3);
877 ret(i, 3) = rhs(i, 2);
878 }
879};
880
881template<class vtype>
883{
884 ret(0) = -rhs(1);
885 ret(1) = rhs(0);
886 ret(2) = -rhs(3);
887 ret(3) = rhs(2);
888};
889
890template<class vtype>
892{
893 for(unsigned int i = 0; i < Ns; ++i)
894 {
895 ret(0, i) = -rhs(1, i);
896 ret(1, i) = rhs(0, i);
897 ret(2, i) = -rhs(3, i);
898 ret(3, i) = rhs(2, i);
899 }
900};
901
902template<class vtype>
904{
905 for(unsigned int i = 0; i < Ns; ++i)
906 {
907 ret(i, 0) = rhs(i, 1);
908 ret(i, 1) = -rhs(i, 0);
909 ret(i, 2) = rhs(i, 3);
910 ret(i, 3) = -rhs(i, 2);
911 }
912};
913
914template<class vtype>
916{
917 ret(0) = rhs(1);
918 ret(1) = -rhs(0);
919 ret(2) = -rhs(3);
920 ret(3) = rhs(2);
921};
922
923template<class vtype>
925{
926 for(unsigned int i = 0; i < Ns; ++i)
927 {
928 ret(0, i) = rhs(1, i);
929 ret(1, i) = -rhs(0, i);
930 ret(2, i) = -rhs(3, i);
931 ret(3, i) = rhs(2, i);
932 }
933};
934
935template<class vtype>
937{
938 for(unsigned int i = 0; i < Ns; ++i)
939 {
940 ret(i, 0) = -rhs(i, 1);
941 ret(i, 1) = rhs(i, 0);
942 ret(i, 2) = rhs(i, 3);
943 ret(i, 3) = -rhs(i, 2);
944 }
945};
946
947template<class vtype>
949{
950 ret(0) = -rhs(1);
951 ret(1) = rhs(0);
952 ret(2) = rhs(3);
953 ret(3) = -rhs(2);
954};
955
956template<class vtype>
958{
959 for(unsigned int i = 0; i < Ns; ++i)
960 {
961 ret(0, i) = -rhs(1, i);
962 ret(1, i) = rhs(0, i);
963 ret(2, i) = rhs(3, i);
964 ret(3, i) = -rhs(2, i);
965 }
966};
967
968template<class vtype>
970{
971 for(unsigned int i = 0; i < Ns; ++i)
972 {
973 ret(i, 0) = rhs(i, 1);
974 ret(i, 1) = -rhs(i, 0);
975 ret(i, 2) = -rhs(i, 3);
976 ret(i, 3) = rhs(i, 2);
977 }
978};
979
980template<class vtype>
982{
983 ret(0) = timesI(rhs(1));
984 ret(1) = timesI(rhs(0));
985 ret(2) = timesI(rhs(3));
986 ret(3) = timesI(rhs(2));
987};
988
989template<class vtype>
991{
992 for(unsigned int i = 0; i < Ns; ++i)
993 {
994 ret(0, i) = timesI(rhs(1, i));
995 ret(1, i) = timesI(rhs(0, i));
996 ret(2, i) = timesI(rhs(3, i));
997 ret(3, i) = timesI(rhs(2, i));
998 }
999};
1000
1001template<class vtype>
1003{
1004 for(unsigned int i = 0; i < Ns; ++i)
1005 {
1006 ret(i, 0) = timesI(rhs(i, 1));
1007 ret(i, 1) = timesI(rhs(i, 0));
1008 ret(i, 2) = timesI(rhs(i, 3));
1009 ret(i, 3) = timesI(rhs(i, 2));
1010 }
1011};
1012
1013template<class vtype>
1015{
1016 ret(0) = timesMinusI(rhs(1));
1017 ret(1) = timesMinusI(rhs(0));
1018 ret(2) = timesMinusI(rhs(3));
1019 ret(3) = timesMinusI(rhs(2));
1020};
1021
1022template<class vtype>
1024{
1025 for(unsigned int i = 0; i < Ns; ++i)
1026 {
1027 ret(0, i) = timesMinusI(rhs(1, i));
1028 ret(1, i) = timesMinusI(rhs(0, i));
1029 ret(2, i) = timesMinusI(rhs(3, i));
1030 ret(3, i) = timesMinusI(rhs(2, i));
1031 }
1032};
1033
1034template<class vtype>
1036{
1037 for(unsigned int i = 0; i < Ns; ++i)
1038 {
1039 ret(i, 0) = timesMinusI(rhs(i, 1));
1040 ret(i, 1) = timesMinusI(rhs(i, 0));
1041 ret(i, 2) = timesMinusI(rhs(i, 3));
1042 ret(i, 3) = timesMinusI(rhs(i, 2));
1043 }
1044};
1045
1046template<class vtype>
1048{
1049 ret(0) = timesMinusI(rhs(0));
1050 ret(1) = timesI(rhs(1));
1051 ret(2) = timesI(rhs(2));
1052 ret(3) = timesMinusI(rhs(3));
1053};
1054
1055template<class vtype>
1057{
1058 for(unsigned int i = 0; i < Ns; ++i)
1059 {
1060 ret(0, i) = timesMinusI(rhs(0, i));
1061 ret(1, i) = timesI(rhs(1, i));
1062 ret(2, i) = timesI(rhs(2, i));
1063 ret(3, i) = timesMinusI(rhs(3, i));
1064 }
1065};
1066
1067template<class vtype>
1069{
1070 for(unsigned int i = 0; i < Ns; ++i)
1071 {
1072 ret(i, 0) = timesMinusI(rhs(i, 0));
1073 ret(i, 1) = timesI(rhs(i, 1));
1074 ret(i, 2) = timesI(rhs(i, 2));
1075 ret(i, 3) = timesMinusI(rhs(i, 3));
1076 }
1077};
1078
1079template<class vtype>
1081{
1082 ret(0) = timesI(rhs(0));
1083 ret(1) = timesMinusI(rhs(1));
1084 ret(2) = timesMinusI(rhs(2));
1085 ret(3) = timesI(rhs(3));
1086};
1087
1088template<class vtype>
1090{
1091 for(unsigned int i = 0; i < Ns; ++i)
1092 {
1093 ret(0, i) = timesI(rhs(0, i));
1094 ret(1, i) = timesMinusI(rhs(1, i));
1095 ret(2, i) = timesMinusI(rhs(2, i));
1096 ret(3, i) = timesI(rhs(3, i));
1097 }
1098};
1099
1100template<class vtype>
1102{
1103 for(unsigned int i = 0; i < Ns; ++i)
1104 {
1105 ret(i, 0) = timesI(rhs(i, 0));
1106 ret(i, 1) = timesMinusI(rhs(i, 1));
1107 ret(i, 2) = timesMinusI(rhs(i, 2));
1108 ret(i, 3) = timesI(rhs(i, 3));
1109 }
1110};
1111
1112template<class vtype>
1114->typename std::enable_if<matchGridTensorIndex<iVector<vtype, Ns>, SpinorIndex>::value, iVector<vtype, Ns>>::type
1115{
1117
1118 switch (G.g)
1119 {
1120 case Gamma::Algebra::MinusGamma5:
1121 multMinusGamma5(ret, arg); break;
1122 case Gamma::Algebra::Gamma5:
1123 multGamma5(ret, arg); break;
1124 case Gamma::Algebra::MinusGammaT:
1125 multMinusGammaT(ret, arg); break;
1126 case Gamma::Algebra::GammaT:
1127 multGammaT(ret, arg); break;
1128 case Gamma::Algebra::MinusGammaTGamma5:
1129 multMinusGammaTGamma5(ret, arg); break;
1130 case Gamma::Algebra::GammaTGamma5:
1131 multGammaTGamma5(ret, arg); break;
1132 case Gamma::Algebra::MinusGammaX:
1133 multMinusGammaX(ret, arg); break;
1134 case Gamma::Algebra::GammaX:
1135 multGammaX(ret, arg); break;
1136 case Gamma::Algebra::MinusGammaXGamma5:
1137 multMinusGammaXGamma5(ret, arg); break;
1138 case Gamma::Algebra::GammaXGamma5:
1139 multGammaXGamma5(ret, arg); break;
1140 case Gamma::Algebra::MinusGammaY:
1141 multMinusGammaY(ret, arg); break;
1142 case Gamma::Algebra::GammaY:
1143 multGammaY(ret, arg); break;
1144 case Gamma::Algebra::MinusGammaYGamma5:
1145 multMinusGammaYGamma5(ret, arg); break;
1146 case Gamma::Algebra::GammaYGamma5:
1147 multGammaYGamma5(ret, arg); break;
1148 case Gamma::Algebra::MinusGammaZ:
1149 multMinusGammaZ(ret, arg); break;
1150 case Gamma::Algebra::GammaZ:
1151 multGammaZ(ret, arg); break;
1152 case Gamma::Algebra::MinusGammaZGamma5:
1153 multMinusGammaZGamma5(ret, arg); break;
1154 case Gamma::Algebra::GammaZGamma5:
1155 multGammaZGamma5(ret, arg); break;
1156 case Gamma::Algebra::MinusIdentity:
1157 multMinusIdentity(ret, arg); break;
1158 case Gamma::Algebra::Identity:
1159 multIdentity(ret, arg); break;
1160 case Gamma::Algebra::MinusSigmaXT:
1161 multMinusSigmaXT(ret, arg); break;
1162 case Gamma::Algebra::SigmaXT:
1163 multSigmaXT(ret, arg); break;
1164 case Gamma::Algebra::MinusSigmaXY:
1165 multMinusSigmaXY(ret, arg); break;
1166 case Gamma::Algebra::SigmaXY:
1167 multSigmaXY(ret, arg); break;
1168 case Gamma::Algebra::MinusSigmaXZ:
1169 multMinusSigmaXZ(ret, arg); break;
1170 case Gamma::Algebra::SigmaXZ:
1171 multSigmaXZ(ret, arg); break;
1172 case Gamma::Algebra::MinusSigmaYT:
1173 multMinusSigmaYT(ret, arg); break;
1174 case Gamma::Algebra::SigmaYT:
1175 multSigmaYT(ret, arg); break;
1176 case Gamma::Algebra::MinusSigmaYZ:
1177 multMinusSigmaYZ(ret, arg); break;
1178 case Gamma::Algebra::SigmaYZ:
1179 multSigmaYZ(ret, arg); break;
1180 case Gamma::Algebra::MinusSigmaZT:
1181 multMinusSigmaZT(ret, arg); break;
1182 case Gamma::Algebra::SigmaZT:
1183 multSigmaZT(ret, arg); break;
1184 default: assert(0);
1185 }
1186
1187 return ret;
1188}
1189
1190template<class vtype>
1192->typename std::enable_if<matchGridTensorIndex<iMatrix<vtype, Ns>, SpinorIndex>::value, iMatrix<vtype, Ns>>::type
1193{
1195
1196 switch (G.g)
1197 {
1198 case Gamma::Algebra::MinusGamma5:
1199 lmultMinusGamma5(ret, arg); break;
1200 case Gamma::Algebra::Gamma5:
1201 lmultGamma5(ret, arg); break;
1202 case Gamma::Algebra::MinusGammaT:
1203 lmultMinusGammaT(ret, arg); break;
1204 case Gamma::Algebra::GammaT:
1205 lmultGammaT(ret, arg); break;
1206 case Gamma::Algebra::MinusGammaTGamma5:
1207 lmultMinusGammaTGamma5(ret, arg); break;
1208 case Gamma::Algebra::GammaTGamma5:
1209 lmultGammaTGamma5(ret, arg); break;
1210 case Gamma::Algebra::MinusGammaX:
1211 lmultMinusGammaX(ret, arg); break;
1212 case Gamma::Algebra::GammaX:
1213 lmultGammaX(ret, arg); break;
1214 case Gamma::Algebra::MinusGammaXGamma5:
1215 lmultMinusGammaXGamma5(ret, arg); break;
1216 case Gamma::Algebra::GammaXGamma5:
1217 lmultGammaXGamma5(ret, arg); break;
1218 case Gamma::Algebra::MinusGammaY:
1219 lmultMinusGammaY(ret, arg); break;
1220 case Gamma::Algebra::GammaY:
1221 lmultGammaY(ret, arg); break;
1222 case Gamma::Algebra::MinusGammaYGamma5:
1223 lmultMinusGammaYGamma5(ret, arg); break;
1224 case Gamma::Algebra::GammaYGamma5:
1225 lmultGammaYGamma5(ret, arg); break;
1226 case Gamma::Algebra::MinusGammaZ:
1227 lmultMinusGammaZ(ret, arg); break;
1228 case Gamma::Algebra::GammaZ:
1229 lmultGammaZ(ret, arg); break;
1230 case Gamma::Algebra::MinusGammaZGamma5:
1231 lmultMinusGammaZGamma5(ret, arg); break;
1232 case Gamma::Algebra::GammaZGamma5:
1233 lmultGammaZGamma5(ret, arg); break;
1234 case Gamma::Algebra::MinusIdentity:
1235 lmultMinusIdentity(ret, arg); break;
1236 case Gamma::Algebra::Identity:
1237 lmultIdentity(ret, arg); break;
1238 case Gamma::Algebra::MinusSigmaXT:
1239 lmultMinusSigmaXT(ret, arg); break;
1240 case Gamma::Algebra::SigmaXT:
1241 lmultSigmaXT(ret, arg); break;
1242 case Gamma::Algebra::MinusSigmaXY:
1243 lmultMinusSigmaXY(ret, arg); break;
1244 case Gamma::Algebra::SigmaXY:
1245 lmultSigmaXY(ret, arg); break;
1246 case Gamma::Algebra::MinusSigmaXZ:
1247 lmultMinusSigmaXZ(ret, arg); break;
1248 case Gamma::Algebra::SigmaXZ:
1249 lmultSigmaXZ(ret, arg); break;
1250 case Gamma::Algebra::MinusSigmaYT:
1251 lmultMinusSigmaYT(ret, arg); break;
1252 case Gamma::Algebra::SigmaYT:
1253 lmultSigmaYT(ret, arg); break;
1254 case Gamma::Algebra::MinusSigmaYZ:
1255 lmultMinusSigmaYZ(ret, arg); break;
1256 case Gamma::Algebra::SigmaYZ:
1257 lmultSigmaYZ(ret, arg); break;
1258 case Gamma::Algebra::MinusSigmaZT:
1259 lmultMinusSigmaZT(ret, arg); break;
1260 case Gamma::Algebra::SigmaZT:
1261 lmultSigmaZT(ret, arg); break;
1262 default: assert(0);
1263 }
1264
1265 return ret;
1266}
1267
1268template<class vtype>
1270->typename std::enable_if<matchGridTensorIndex<iMatrix<vtype, Ns>, SpinorIndex>::value, iMatrix<vtype, Ns>>::type
1271{
1273
1274 switch (G.g)
1275 {
1276 case Gamma::Algebra::MinusGamma5:
1277 rmultMinusGamma5(ret, arg); break;
1278 case Gamma::Algebra::Gamma5:
1279 rmultGamma5(ret, arg); break;
1280 case Gamma::Algebra::MinusGammaT:
1281 rmultMinusGammaT(ret, arg); break;
1282 case Gamma::Algebra::GammaT:
1283 rmultGammaT(ret, arg); break;
1284 case Gamma::Algebra::MinusGammaTGamma5:
1285 rmultMinusGammaTGamma5(ret, arg); break;
1286 case Gamma::Algebra::GammaTGamma5:
1287 rmultGammaTGamma5(ret, arg); break;
1288 case Gamma::Algebra::MinusGammaX:
1289 rmultMinusGammaX(ret, arg); break;
1290 case Gamma::Algebra::GammaX:
1291 rmultGammaX(ret, arg); break;
1292 case Gamma::Algebra::MinusGammaXGamma5:
1293 rmultMinusGammaXGamma5(ret, arg); break;
1294 case Gamma::Algebra::GammaXGamma5:
1295 rmultGammaXGamma5(ret, arg); break;
1296 case Gamma::Algebra::MinusGammaY:
1297 rmultMinusGammaY(ret, arg); break;
1298 case Gamma::Algebra::GammaY:
1299 rmultGammaY(ret, arg); break;
1300 case Gamma::Algebra::MinusGammaYGamma5:
1301 rmultMinusGammaYGamma5(ret, arg); break;
1302 case Gamma::Algebra::GammaYGamma5:
1303 rmultGammaYGamma5(ret, arg); break;
1304 case Gamma::Algebra::MinusGammaZ:
1305 rmultMinusGammaZ(ret, arg); break;
1306 case Gamma::Algebra::GammaZ:
1307 rmultGammaZ(ret, arg); break;
1308 case Gamma::Algebra::MinusGammaZGamma5:
1309 rmultMinusGammaZGamma5(ret, arg); break;
1310 case Gamma::Algebra::GammaZGamma5:
1311 rmultGammaZGamma5(ret, arg); break;
1312 case Gamma::Algebra::MinusIdentity:
1313 rmultMinusIdentity(ret, arg); break;
1314 case Gamma::Algebra::Identity:
1315 rmultIdentity(ret, arg); break;
1316 case Gamma::Algebra::MinusSigmaXT:
1317 rmultMinusSigmaXT(ret, arg); break;
1318 case Gamma::Algebra::SigmaXT:
1319 rmultSigmaXT(ret, arg); break;
1320 case Gamma::Algebra::MinusSigmaXY:
1321 rmultMinusSigmaXY(ret, arg); break;
1322 case Gamma::Algebra::SigmaXY:
1323 rmultSigmaXY(ret, arg); break;
1324 case Gamma::Algebra::MinusSigmaXZ:
1325 rmultMinusSigmaXZ(ret, arg); break;
1326 case Gamma::Algebra::SigmaXZ:
1327 rmultSigmaXZ(ret, arg); break;
1328 case Gamma::Algebra::MinusSigmaYT:
1329 rmultMinusSigmaYT(ret, arg); break;
1330 case Gamma::Algebra::SigmaYT:
1331 rmultSigmaYT(ret, arg); break;
1332 case Gamma::Algebra::MinusSigmaYZ:
1333 rmultMinusSigmaYZ(ret, arg); break;
1334 case Gamma::Algebra::SigmaYZ:
1335 rmultSigmaYZ(ret, arg); break;
1336 case Gamma::Algebra::MinusSigmaZT:
1337 rmultMinusSigmaZT(ret, arg); break;
1338 case Gamma::Algebra::SigmaZT:
1339 rmultSigmaZT(ret, arg); break;
1340 default: assert(0);
1341 }
1342
1343 return ret;
1344}
1345
1347
1348#endif // GRID_QCD_GAMMA_H
#define accelerator_inline
#define accelerator
accelerator_inline void rmultSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1035
accelerator_inline void rmultMinusGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:276
accelerator_inline void lmultMinusSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:726
accelerator_inline void lmultMinusGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:396
accelerator_inline void lmultMinusSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:990
accelerator_inline void lmultMinusSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1056
accelerator_inline void rmultMinusGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:474
accelerator_inline void lmultMinusGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:66
accelerator_inline void lmultSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:759
accelerator_inline void rmultGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:309
accelerator_inline void rmultGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:375
accelerator_inline void multMinusGammaX(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:255
accelerator_inline void multMinusGammaTGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:189
accelerator_inline void lmultMinusGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:264
accelerator_inline void rmultMinusSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:936
accelerator_inline void lmultSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:957
accelerator_inline void multMinusGammaT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:123
accelerator_inline void multMinusIdentity(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:651
accelerator_inline void lmultMinusGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:198
accelerator_inline void rmultGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:243
accelerator_inline void rmultSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:903
accelerator_inline void multMinusGammaYGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:453
accelerator_inline void multIdentity(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:684
accelerator_inline void multMinusSigmaXT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:717
accelerator_inline void rmultMinusGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:606
accelerator_inline void lmultGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:231
accelerator_inline void multSigmaXT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:750
accelerator_inline void lmultGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:297
accelerator_inline void multSigmaZT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:1080
accelerator_inline void rmultGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:639
accelerator_inline void multMinusSigmaZT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:1047
accelerator_inline void lmultMinusSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:858
accelerator_inline void rmultIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:705
accelerator_inline void multGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:90
accelerator_inline void rmultGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:441
accelerator_inline void rmultMinusSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1002
accelerator_inline void multGammaY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:420
accelerator_inline void lmultMinusSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:792
accelerator_inline void multMinusSigmaYT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:915
accelerator_inline void lmultMinusGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:132
accelerator_inline auto operator*(const Gamma &G, const iVector< vtype, Ns > &arg) -> typename std::enable_if< matchGridTensorIndex< iVector< vtype, Ns >, SpinorIndex >::value, iVector< vtype, Ns > >::type
Definition Gamma.h:1113
accelerator_inline void multSigmaXY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:816
accelerator_inline void multGammaXGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:354
accelerator_inline void rmultGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:111
accelerator_inline void rmultMinusSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:870
accelerator_inline void multMinusSigmaXZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:849
accelerator_inline void lmultGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:429
accelerator_inline void lmultMinusGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:528
accelerator_inline void rmultGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:177
accelerator_inline void rmultMinusGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:210
accelerator_inline void rmultMinusGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:144
accelerator_inline void multMinusGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:57
accelerator_inline void multSigmaYZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:1014
accelerator_inline void multMinusGammaY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:387
accelerator_inline void multMinusGammaXGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:321
accelerator_inline void rmultSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:837
accelerator_inline void lmultGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:561
accelerator_inline void multMinusGammaZGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:585
accelerator_inline void multGammaTGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:222
accelerator_inline void rmultMinusSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:804
accelerator_inline void rmultMinusGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:342
accelerator_inline void rmultSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:969
accelerator_inline void multMinusGammaZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:519
accelerator_inline void multGammaYGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:486
accelerator_inline void multGammaX(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:288
accelerator_inline void rmultMinusIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:672
accelerator_inline void lmultMinusGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:462
accelerator_inline void rmultGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:573
accelerator_inline void rmultMinusSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:738
accelerator_inline void multGammaZGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:618
accelerator_inline void lmultMinusGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:594
accelerator_inline void lmultGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:363
accelerator_inline void multGammaZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:552
accelerator_inline void rmultMinusSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1068
accelerator_inline void lmultSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:825
accelerator_inline void rmultMinusGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:78
accelerator_inline void lmultSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1023
accelerator_inline void rmultSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:771
accelerator_inline void lmultIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:693
accelerator_inline void multGammaT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:156
accelerator_inline void lmultGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:495
accelerator_inline void lmultMinusIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:660
accelerator_inline void lmultSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:891
accelerator_inline void rmultMinusGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:408
accelerator_inline void lmultGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:165
accelerator_inline void lmultGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:627
accelerator_inline void multSigmaYT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:948
accelerator_inline void multMinusSigmaYZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:981
accelerator_inline void multSigmaXZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:882
accelerator_inline void lmultMinusSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:924
accelerator_inline void rmultGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:507
accelerator_inline void rmultSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1101
accelerator_inline void rmultMinusGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:540
accelerator_inline void lmultGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:99
accelerator_inline void lmultMinusGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:330
accelerator_inline void multMinusSigmaXY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
Definition Gamma.h:783
accelerator_inline void lmultSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
Definition Gamma.h:1089
accelerator_inline void timesMinusI(Grid_simd2< S, V > &ret, const Grid_simd2< S, V > &in)
accelerator_inline void timesI(Grid_simd2< S, V > &ret, const Grid_simd2< S, V > &in)
#define NAMESPACE_BEGIN(A)
Definition Namespace.h:35
#define NAMESPACE_END(A)
Definition Namespace.h:36
static constexpr int Ns
Definition QCD.h:51
const int SpinorIndex
Definition QCD.h:77
Definition Gamma.h:10
static const std::array< Algebra, nGamma > adj
Definition Gamma.h:65
static const std::array< const char *, nGamma > name
Definition Gamma.h:31
static const std::array< const Gamma, 16 > gall
Definition Gamma.h:13
static const std::array< std::array< Algebra, nGamma >, nGamma > mul
Definition Gamma.h:99
static const std::array< const Gamma, 4 > gmu
Definition Gamma.h:7
accelerator Gamma(Algebra initg)
Definition Gamma.h:53
Algebra g
Definition Gamma.h:51
GRID_SERIALIZABLE_ENUM(Algebra, undef, MinusGamma5, 0, Gamma5, 1, MinusGammaT, 2, GammaT, 3, MinusGammaTGamma5, 4, GammaTGamma5, 5, MinusGammaX, 6, GammaX, 7, MinusGammaXGamma5, 8, GammaXGamma5, 9, MinusGammaY, 10, GammaY, 11, MinusGammaYGamma5, 12, GammaYGamma5, 13, MinusGammaZ, 14, GammaZ, 15, MinusGammaZGamma5, 16, GammaZGamma5, 17, MinusIdentity, 18, Identity, 19, MinusSigmaXT, 20, SigmaXT, 21, MinusSigmaXY, 22, SigmaXY, 23, MinusSigmaXZ, 24, SigmaXZ, 25, MinusSigmaYT, 26, SigmaYT, 27, MinusSigmaYZ, 28, SigmaYZ, 29, MinusSigmaZT, 30, SigmaZT, 31)
static constexpr unsigned int nGamma
Definition Gamma.h:45