1#ifndef GRID_QCD_GAMMA_H
2#define GRID_QCD_GAMMA_H
25 MinusGammaYGamma5, 12,
29 MinusGammaZGamma5, 16,
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;
68 for(
unsigned int i = 0; i <
Ns; ++i)
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);
80 for(
unsigned int i = 0; i <
Ns; ++i)
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);
101 for(
unsigned int i = 0; i <
Ns; ++i)
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);
113 for(
unsigned int i = 0; i <
Ns; ++i)
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);
134 for(
unsigned int i = 0; i <
Ns; ++i)
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);
146 for(
unsigned int i = 0; i <
Ns; ++i)
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);
167 for(
unsigned int i = 0; i <
Ns; ++i)
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);
179 for(
unsigned int i = 0; i <
Ns; ++i)
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);
200 for(
unsigned int i = 0; i <
Ns; ++i)
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);
212 for(
unsigned int i = 0; i <
Ns; ++i)
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);
233 for(
unsigned int i = 0; i <
Ns; ++i)
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);
245 for(
unsigned int i = 0; i <
Ns; ++i)
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);
266 for(
unsigned int i = 0; i <
Ns; ++i)
270 ret(2, i) =
timesI(rhs(1, i));
271 ret(3, i) =
timesI(rhs(0, i));
278 for(
unsigned int i = 0; i <
Ns; ++i)
280 ret(i, 0) =
timesI(rhs(i, 3));
281 ret(i, 1) =
timesI(rhs(i, 2));
299 for(
unsigned int i = 0; i <
Ns; ++i)
301 ret(0, i) =
timesI(rhs(3, i));
302 ret(1, i) =
timesI(rhs(2, i));
311 for(
unsigned int i = 0; i <
Ns; ++i)
315 ret(i, 2) =
timesI(rhs(i, 1));
316 ret(i, 3) =
timesI(rhs(i, 0));
332 for(
unsigned int i = 0; i <
Ns; ++i)
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));
344 for(
unsigned int i = 0; i <
Ns; ++i)
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));
365 for(
unsigned int i = 0; i <
Ns; ++i)
377 for(
unsigned int i = 0; i <
Ns; ++i)
398 for(
unsigned int i = 0; i <
Ns; ++i)
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);
410 for(
unsigned int i = 0; i <
Ns; ++i)
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);
431 for(
unsigned int i = 0; i <
Ns; ++i)
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);
443 for(
unsigned int i = 0; i <
Ns; ++i)
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);
464 for(
unsigned int i = 0; i <
Ns; ++i)
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);
476 for(
unsigned int i = 0; i <
Ns; ++i)
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);
497 for(
unsigned int i = 0; i <
Ns; ++i)
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);
509 for(
unsigned int i = 0; i <
Ns; ++i)
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);
530 for(
unsigned int i = 0; i <
Ns; ++i)
533 ret(1, i) =
timesI(rhs(3, i));
534 ret(2, i) =
timesI(rhs(0, i));
542 for(
unsigned int i = 0; i <
Ns; ++i)
544 ret(i, 0) =
timesI(rhs(i, 2));
547 ret(i, 3) =
timesI(rhs(i, 1));
563 for(
unsigned int i = 0; i <
Ns; ++i)
565 ret(0, i) =
timesI(rhs(2, i));
568 ret(3, i) =
timesI(rhs(1, i));
575 for(
unsigned int i = 0; i <
Ns; ++i)
578 ret(i, 1) =
timesI(rhs(i, 3));
579 ret(i, 2) =
timesI(rhs(i, 0));
596 for(
unsigned int i = 0; i <
Ns; ++i)
598 ret(0, i) =
timesI(rhs(2, i));
600 ret(2, i) =
timesI(rhs(0, i));
608 for(
unsigned int i = 0; i <
Ns; ++i)
610 ret(i, 0) =
timesI(rhs(i, 2));
612 ret(i, 2) =
timesI(rhs(i, 0));
629 for(
unsigned int i = 0; i <
Ns; ++i)
632 ret(1, i) =
timesI(rhs(3, i));
634 ret(3, i) =
timesI(rhs(1, i));
641 for(
unsigned int i = 0; i <
Ns; ++i)
644 ret(i, 1) =
timesI(rhs(i, 3));
646 ret(i, 3) =
timesI(rhs(i, 1));
662 for(
unsigned int i = 0; i <
Ns; ++i)
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);
674 for(
unsigned int i = 0; i <
Ns; ++i)
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);
695 for(
unsigned int i = 0; i <
Ns; ++i)
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);
707 for(
unsigned int i = 0; i <
Ns; ++i)
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);
728 for(
unsigned int i = 0; i <
Ns; ++i)
732 ret(2, i) =
timesI(rhs(3, i));
733 ret(3, i) =
timesI(rhs(2, i));
740 for(
unsigned int i = 0; i <
Ns; ++i)
744 ret(i, 2) =
timesI(rhs(i, 3));
745 ret(i, 3) =
timesI(rhs(i, 2));
761 for(
unsigned int i = 0; i <
Ns; ++i)
763 ret(0, i) =
timesI(rhs(1, i));
764 ret(1, i) =
timesI(rhs(0, i));
773 for(
unsigned int i = 0; i <
Ns; ++i)
775 ret(i, 0) =
timesI(rhs(i, 1));
776 ret(i, 1) =
timesI(rhs(i, 0));
794 for(
unsigned int i = 0; i <
Ns; ++i)
796 ret(0, i) =
timesI(rhs(0, i));
798 ret(2, i) =
timesI(rhs(2, i));
806 for(
unsigned int i = 0; i <
Ns; ++i)
808 ret(i, 0) =
timesI(rhs(i, 0));
810 ret(i, 2) =
timesI(rhs(i, 2));
827 for(
unsigned int i = 0; i <
Ns; ++i)
830 ret(1, i) =
timesI(rhs(1, i));
832 ret(3, i) =
timesI(rhs(3, i));
839 for(
unsigned int i = 0; i <
Ns; ++i)
842 ret(i, 1) =
timesI(rhs(i, 1));
844 ret(i, 3) =
timesI(rhs(i, 3));
860 for(
unsigned int i = 0; i <
Ns; ++i)
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);
872 for(
unsigned int i = 0; i <
Ns; ++i)
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);
893 for(
unsigned int i = 0; i <
Ns; ++i)
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);
905 for(
unsigned int i = 0; i <
Ns; ++i)
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);
926 for(
unsigned int i = 0; i <
Ns; ++i)
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);
938 for(
unsigned int i = 0; i <
Ns; ++i)
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);
959 for(
unsigned int i = 0; i <
Ns; ++i)
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);
971 for(
unsigned int i = 0; i <
Ns; ++i)
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);
992 for(
unsigned int i = 0; i <
Ns; ++i)
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));
1001template<
class vtype>
1004 for(
unsigned int i = 0; i <
Ns; ++i)
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));
1013template<
class vtype>
1022template<
class vtype>
1025 for(
unsigned int i = 0; i <
Ns; ++i)
1034template<
class vtype>
1037 for(
unsigned int i = 0; i <
Ns; ++i)
1046template<
class vtype>
1055template<
class vtype>
1058 for(
unsigned int i = 0; i <
Ns; ++i)
1061 ret(1, i) =
timesI(rhs(1, i));
1062 ret(2, i) =
timesI(rhs(2, i));
1067template<
class vtype>
1070 for(
unsigned int i = 0; i <
Ns; ++i)
1073 ret(i, 1) =
timesI(rhs(i, 1));
1074 ret(i, 2) =
timesI(rhs(i, 2));
1079template<
class vtype>
1088template<
class vtype>
1091 for(
unsigned int i = 0; i <
Ns; ++i)
1093 ret(0, i) =
timesI(rhs(0, i));
1096 ret(3, i) =
timesI(rhs(3, i));
1100template<
class vtype>
1103 for(
unsigned int i = 0; i <
Ns; ++i)
1105 ret(i, 0) =
timesI(rhs(i, 0));
1108 ret(i, 3) =
timesI(rhs(i, 3));
1112template<
class vtype>
1120 case Gamma::Algebra::MinusGamma5:
1122 case Gamma::Algebra::Gamma5:
1124 case Gamma::Algebra::MinusGammaT:
1126 case Gamma::Algebra::GammaT:
1128 case Gamma::Algebra::MinusGammaTGamma5:
1130 case Gamma::Algebra::GammaTGamma5:
1132 case Gamma::Algebra::MinusGammaX:
1134 case Gamma::Algebra::GammaX:
1136 case Gamma::Algebra::MinusGammaXGamma5:
1138 case Gamma::Algebra::GammaXGamma5:
1140 case Gamma::Algebra::MinusGammaY:
1142 case Gamma::Algebra::GammaY:
1144 case Gamma::Algebra::MinusGammaYGamma5:
1146 case Gamma::Algebra::GammaYGamma5:
1148 case Gamma::Algebra::MinusGammaZ:
1150 case Gamma::Algebra::GammaZ:
1152 case Gamma::Algebra::MinusGammaZGamma5:
1154 case Gamma::Algebra::GammaZGamma5:
1156 case Gamma::Algebra::MinusIdentity:
1158 case Gamma::Algebra::Identity:
1160 case Gamma::Algebra::MinusSigmaXT:
1162 case Gamma::Algebra::SigmaXT:
1164 case Gamma::Algebra::MinusSigmaXY:
1166 case Gamma::Algebra::SigmaXY:
1168 case Gamma::Algebra::MinusSigmaXZ:
1170 case Gamma::Algebra::SigmaXZ:
1172 case Gamma::Algebra::MinusSigmaYT:
1174 case Gamma::Algebra::SigmaYT:
1176 case Gamma::Algebra::MinusSigmaYZ:
1178 case Gamma::Algebra::SigmaYZ:
1180 case Gamma::Algebra::MinusSigmaZT:
1182 case Gamma::Algebra::SigmaZT:
1190template<
class vtype>
1198 case Gamma::Algebra::MinusGamma5:
1200 case Gamma::Algebra::Gamma5:
1202 case Gamma::Algebra::MinusGammaT:
1204 case Gamma::Algebra::GammaT:
1206 case Gamma::Algebra::MinusGammaTGamma5:
1208 case Gamma::Algebra::GammaTGamma5:
1210 case Gamma::Algebra::MinusGammaX:
1212 case Gamma::Algebra::GammaX:
1214 case Gamma::Algebra::MinusGammaXGamma5:
1216 case Gamma::Algebra::GammaXGamma5:
1218 case Gamma::Algebra::MinusGammaY:
1220 case Gamma::Algebra::GammaY:
1222 case Gamma::Algebra::MinusGammaYGamma5:
1224 case Gamma::Algebra::GammaYGamma5:
1226 case Gamma::Algebra::MinusGammaZ:
1228 case Gamma::Algebra::GammaZ:
1230 case Gamma::Algebra::MinusGammaZGamma5:
1232 case Gamma::Algebra::GammaZGamma5:
1234 case Gamma::Algebra::MinusIdentity:
1236 case Gamma::Algebra::Identity:
1238 case Gamma::Algebra::MinusSigmaXT:
1240 case Gamma::Algebra::SigmaXT:
1242 case Gamma::Algebra::MinusSigmaXY:
1244 case Gamma::Algebra::SigmaXY:
1246 case Gamma::Algebra::MinusSigmaXZ:
1248 case Gamma::Algebra::SigmaXZ:
1250 case Gamma::Algebra::MinusSigmaYT:
1252 case Gamma::Algebra::SigmaYT:
1254 case Gamma::Algebra::MinusSigmaYZ:
1256 case Gamma::Algebra::SigmaYZ:
1258 case Gamma::Algebra::MinusSigmaZT:
1260 case Gamma::Algebra::SigmaZT:
1268template<
class vtype>
1276 case Gamma::Algebra::MinusGamma5:
1278 case Gamma::Algebra::Gamma5:
1280 case Gamma::Algebra::MinusGammaT:
1282 case Gamma::Algebra::GammaT:
1284 case Gamma::Algebra::MinusGammaTGamma5:
1286 case Gamma::Algebra::GammaTGamma5:
1288 case Gamma::Algebra::MinusGammaX:
1290 case Gamma::Algebra::GammaX:
1292 case Gamma::Algebra::MinusGammaXGamma5:
1294 case Gamma::Algebra::GammaXGamma5:
1296 case Gamma::Algebra::MinusGammaY:
1298 case Gamma::Algebra::GammaY:
1300 case Gamma::Algebra::MinusGammaYGamma5:
1302 case Gamma::Algebra::GammaYGamma5:
1304 case Gamma::Algebra::MinusGammaZ:
1306 case Gamma::Algebra::GammaZ:
1308 case Gamma::Algebra::MinusGammaZGamma5:
1310 case Gamma::Algebra::GammaZGamma5:
1312 case Gamma::Algebra::MinusIdentity:
1314 case Gamma::Algebra::Identity:
1316 case Gamma::Algebra::MinusSigmaXT:
1318 case Gamma::Algebra::SigmaXT:
1320 case Gamma::Algebra::MinusSigmaXY:
1322 case Gamma::Algebra::SigmaXY:
1324 case Gamma::Algebra::MinusSigmaXZ:
1326 case Gamma::Algebra::SigmaXZ:
1328 case Gamma::Algebra::MinusSigmaYT:
1330 case Gamma::Algebra::SigmaYT:
1332 case Gamma::Algebra::MinusSigmaYZ:
1334 case Gamma::Algebra::SigmaYZ:
1336 case Gamma::Algebra::MinusSigmaZT:
1338 case Gamma::Algebra::SigmaZT:
#define accelerator_inline
accelerator_inline void rmultSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaX(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaTGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusIdentity(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaYGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multIdentity(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaXT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multSigmaXT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultGammaX(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multSigmaZT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaZT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multGammaY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaYT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
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
accelerator_inline void multSigmaXY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multGammaXGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaXZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaTGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multSigmaYZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaXGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaZGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multGammaTGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusGammaZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multGammaYGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multGammaX(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultMinusIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multGammaZGamma5(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multGammaZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void rmultMinusSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaXY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaYZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultSigmaXT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multGammaT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusIdentity(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaXZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaY(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGammaT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGammaZGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multSigmaYT(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaYZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void multSigmaXZ(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultMinusSigmaYT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultGammaYGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void rmultMinusGammaZ(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void lmultMinusGammaXGamma5(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
accelerator_inline void multMinusSigmaXY(iVector< vtype, Ns > &ret, const iVector< vtype, Ns > &rhs)
accelerator_inline void lmultSigmaZT(iMatrix< vtype, Ns > &ret, const iMatrix< vtype, Ns > &rhs)
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)
static const std::array< Algebra, nGamma > adj
static const std::array< const char *, nGamma > name
static const std::array< const Gamma, 16 > gall
static const std::array< std::array< Algebra, nGamma >, nGamma > mul
static const std::array< const Gamma, 4 > gmu
accelerator Gamma(Algebra initg)
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