Bridge++  Ver. 2.0.2
fopr_Wilson_impl_common-inc.h
Go to the documentation of this file.
1 
10 #ifndef FOPR_WILSON_IMPL_COMMON_INC_INCLUDED
11 #define FOPR_WILSON_IMPL_COMMON_INC_INCLUDED
12 
13 
14 namespace {
15  inline void mult_gamma5_dirac(double *v, const double *w, const int Nc)
16  {
17  for (int ivc = 0; ivc < 2 * NC; ++ivc) {
18  v[ivc + ID1] = w[ivc + ID3];
19  v[ivc + ID2] = w[ivc + ID4];
20  v[ivc + ID3] = w[ivc + ID1];
21  v[ivc + ID4] = w[ivc + ID2];
22  }
23  }
24 
25 
26  inline void mult_gamma5_chiral(double *v, const double *w, const int Nc)
27  {
28  for (int ivc = 0; ivc < 2 * NC; ++ivc) {
29  v[ivc + ID1] = w[ivc + ID1];
30  v[ivc + ID2] = w[ivc + ID2];
31  v[ivc + ID3] = -w[ivc + ID3];
32  v[ivc + ID4] = -w[ivc + ID4];
33  }
34  }
35 
36 
37  inline void set_sp2_xp(double *vt1, double *vt2,
38  const double *w, const int Nc)
39  {
40  for (int ic = 0; ic < NC; ++ic) {
41  int icr = 2 * ic;
42  int ici = 2 * ic + 1;
43  vt1[icr] = w[icr + ID1] - w[ici + ID4];
44  vt1[ici] = w[ici + ID1] + w[icr + ID4];
45  vt2[icr] = w[icr + ID2] - w[ici + ID3];
46  vt2[ici] = w[ici + ID2] + w[icr + ID3];
47  }
48  }
49 
50 
51  inline void set_sp4_xp(double *v, double w1r, double w1i,
52  double w2r, double w2i, const int Nc)
53  {
54  v[0 + ID1] += w1r;
55  v[1 + ID1] += w1i;
56  v[0 + ID2] += w2r;
57  v[1 + ID2] += w2i;
58  v[0 + ID3] += w2i;
59  v[1 + ID3] -= w2r;
60  v[0 + ID4] += w1i;
61  v[1 + ID4] -= w1r;
62  }
63 
64 
65  inline void set_sp2_xm(double *vt1, double *vt2,
66  const double *w, const int Nc)
67  {
68  for (int ic = 0; ic < NC; ++ic) {
69  int icr = 2 * ic;
70  int ici = 2 * ic + 1;
71  vt1[icr] = w[icr + ID1] + w[ici + ID4];
72  vt1[ici] = w[ici + ID1] - w[icr + ID4];
73  vt2[icr] = w[icr + ID2] + w[ici + ID3];
74  vt2[ici] = w[ici + ID2] - w[icr + ID3];
75  }
76  }
77 
78 
79  inline void set_sp4_xm(double *v, double w1r, double w1i,
80  double w2r, double w2i, const int Nc)
81  {
82  v[0 + ID1] += w1r;
83  v[1 + ID1] += w1i;
84  v[0 + ID2] += w2r;
85  v[1 + ID2] += w2i;
86  v[0 + ID3] -= w2i;
87  v[1 + ID3] += w2r;
88  v[0 + ID4] -= w1i;
89  v[1 + ID4] += w1r;
90  }
91 
92 
93  inline void set_sp2_yp(double *vt1, double *vt2,
94  const double *w, const int Nc)
95  {
96  for (int ic = 0; ic < NC; ++ic) {
97  int icr = 2 * ic;
98  int ici = 2 * ic + 1;
99  vt1[icr] = w[icr + ID1] + w[icr + ID4];
100  vt1[ici] = w[ici + ID1] + w[ici + ID4];
101  vt2[icr] = w[icr + ID2] - w[icr + ID3];
102  vt2[ici] = w[ici + ID2] - w[ici + ID3];
103  }
104  }
105 
106 
107  inline void set_sp4_yp(double *v, double w1r, double w1i,
108  double w2r, double w2i, const int Nc)
109  {
110  v[0 + ID1] += w1r;
111  v[1 + ID1] += w1i;
112  v[0 + ID2] += w2r;
113  v[1 + ID2] += w2i;
114  v[0 + ID3] -= w2r;
115  v[1 + ID3] -= w2i;
116  v[0 + ID4] += w1r;
117  v[1 + ID4] += w1i;
118  }
119 
120 
121  inline void set_sp2_ym(double *vt1, double *vt2,
122  const double *w, const int Nc)
123  {
124  for (int ic = 0; ic < NC; ++ic) {
125  int icr = 2 * ic;
126  int ici = 2 * ic + 1;
127  vt1[icr] = w[icr + ID1] - w[icr + ID4];
128  vt1[ici] = w[ici + ID1] - w[ici + ID4];
129  vt2[icr] = w[icr + ID2] + w[icr + ID3];
130  vt2[ici] = w[ici + ID2] + w[ici + ID3];
131  }
132  }
133 
134 
135  inline void set_sp4_ym(double *v, double w1r, double w1i,
136  double w2r, double w2i, const int Nc)
137  {
138  v[0 + ID1] += w1r;
139  v[1 + ID1] += w1i;
140  v[0 + ID2] += w2r;
141  v[1 + ID2] += w2i;
142  v[0 + ID3] += w2r;
143  v[1 + ID3] += w2i;
144  v[0 + ID4] -= w1r;
145  v[1 + ID4] -= w1i;
146  }
147 
148 
149  inline void set_sp2_zp(double *vt1, double *vt2,
150  const double *w, const int Nc)
151  {
152  for (int ic = 0; ic < NC; ++ic) {
153  int icr = 2 * ic;
154  int ici = 2 * ic + 1;
155  vt1[icr] = w[icr + ID1] - w[ici + ID3];
156  vt1[ici] = w[ici + ID1] + w[icr + ID3];
157  vt2[icr] = w[icr + ID2] + w[ici + ID4];
158  vt2[ici] = w[ici + ID2] - w[icr + ID4];
159  }
160  }
161 
162 
163  inline void set_sp4_zp(double *v, double w1r, double w1i,
164  double w2r, double w2i, const int Nc)
165  {
166  v[0 + ID1] += w1r;
167  v[1 + ID1] += w1i;
168  v[0 + ID2] += w2r;
169  v[1 + ID2] += w2i;
170  v[0 + ID3] += w1i;
171  v[1 + ID3] -= w1r;
172  v[0 + ID4] -= w2i;
173  v[1 + ID4] += w2r;
174  }
175 
176 
177  inline void set_sp2_zm(double *vt1, double *vt2,
178  const double *w, const int Nc)
179  {
180  for (int ic = 0; ic < NC; ++ic) {
181  int icr = 2 * ic;
182  int ici = 2 * ic + 1;
183  vt1[icr] = w[icr + ID1] + w[ici + ID3];
184  vt1[ici] = w[ici + ID1] - w[icr + ID3];
185  vt2[icr] = w[icr + ID2] - w[ici + ID4];
186  vt2[ici] = w[ici + ID2] + w[icr + ID4];
187  }
188  }
189 
190 
191  inline void set_sp4_zm(double *v, double w1r, double w1i,
192  double w2r, double w2i, const int Nc)
193  {
194  v[0 + ID1] += w1r;
195  v[1 + ID1] += w1i;
196  v[0 + ID2] += w2r;
197  v[1 + ID2] += w2i;
198  v[0 + ID3] -= w1i;
199  v[1 + ID3] += w1r;
200  v[0 + ID4] += w2i;
201  v[1 + ID4] -= w2r;
202  }
203 
204 
205  inline void set_sp2_tp_dirac(double *vt1, double *vt2,
206  const double *w, const int Nc)
207  {
208  for (int ic = 0; ic < NC; ++ic) {
209  int icr = 2 * ic;
210  int ici = 2 * ic + 1;
211  vt1[icr] = 2.0 * w[icr + ID3];
212  vt1[ici] = 2.0 * w[ici + ID3];
213  vt2[icr] = 2.0 * w[icr + ID4];
214  vt2[ici] = 2.0 * w[ici + ID4];
215  }
216  }
217 
218 
219  inline void set_sp4_tp_dirac(double *v,
220  double w1r, double w1i,
221  double w2r, double w2i, const int Nc)
222  {
223  v[0 + ID3] += w1r;
224  v[1 + ID3] += w1i;
225  v[0 + ID4] += w2r;
226  v[1 + ID4] += w2i;
227  }
228 
229 
230  inline void set_sp2_tm_dirac(double *vt1, double *vt2,
231  const double *w, const int Nc)
232  {
233  for (int ic = 0; ic < NC; ++ic) {
234  int icr = 2 * ic;
235  int ici = 2 * ic + 1;
236  vt1[icr] = 2.0 * w[icr + ID1];
237  vt1[ici] = 2.0 * w[ici + ID1];
238  vt2[icr] = 2.0 * w[icr + ID2];
239  vt2[ici] = 2.0 * w[ici + ID2];
240  }
241  }
242 
243 
244  inline void set_sp4_tm_dirac(double *v,
245  double w1r, double w1i,
246  double w2r, double w2i, const int Nc)
247  {
248  v[0 + ID1] += w1r;
249  v[1 + ID1] += w1i;
250  v[0 + ID2] += w2r;
251  v[1 + ID2] += w2i;
252  }
253 
254 
255  inline void set_sp2_tp_chiral(double *vt1, double *vt2,
256  const double *w, const int Nc)
257  {
258  for (int ic = 0; ic < NC; ++ic) {
259  int icr = 2 * ic;
260  int ici = 2 * ic + 1;
261  vt1[icr] = w[icr + ID1] + w[icr + ID3];
262  vt1[ici] = w[ici + ID1] + w[ici + ID3];
263  vt2[icr] = w[icr + ID2] + w[icr + ID4];
264  vt2[ici] = w[ici + ID2] + w[ici + ID4];
265  }
266  }
267 
268 
269  inline void set_sp4_tp_chiral(double *v,
270  double w1r, double w1i,
271  double w2r, double w2i, const int Nc)
272  {
273  v[0 + ID1] += w1r;
274  v[1 + ID1] += w1i;
275  v[0 + ID2] += w2r;
276  v[1 + ID2] += w2i;
277  v[0 + ID3] += w1r;
278  v[1 + ID3] += w1i;
279  v[0 + ID4] += w2r;
280  v[1 + ID4] += w2i;
281  }
282 
283 
284  inline void set_sp2_tm_chiral(double *vt1, double *vt2,
285  const double *w, const int Nc)
286  {
287  for (int ic = 0; ic < NC; ++ic) {
288  int icr = 2 * ic;
289  int ici = 2 * ic + 1;
290  vt1[icr] = w[icr + ID1] - w[icr + ID3];
291  vt1[ici] = w[ici + ID1] - w[ici + ID3];
292  vt2[icr] = w[icr + ID2] - w[icr + ID4];
293  vt2[ici] = w[ici + ID2] - w[ici + ID4];
294  }
295  }
296 
297 
298  inline void set_sp4_tm_chiral(double *v,
299  double w1r, double w1i,
300  double w2r, double w2i, const int Nc)
301  {
302  v[0 + ID1] += w1r;
303  v[1 + ID1] += w1i;
304  v[0 + ID2] += w2r;
305  v[1 + ID2] += w2i;
306  v[0 + ID3] -= w1r;
307  v[1 + ID3] -= w1i;
308  v[0 + ID4] -= w2r;
309  v[1 + ID4] -= w2i;
310  }
311 } // end of nameless namespace
312 
313 #endif
314 //============================================================END=====
ID1
#define ID1
Definition: fopr_Wilson_impl_SU2-inc.h:18
ID2
#define ID2
Definition: fopr_Wilson_impl_SU2-inc.h:19
ID4
#define ID4
Definition: fopr_Wilson_impl_SU2-inc.h:21
NC
#define NC
Definition: field_F_imp_SU2-inc.h:2
ID3
#define ID3
Definition: fopr_Wilson_impl_SU2-inc.h:20