49 for (
int s = 0; s <
ND; ++s) {
54 idc_i[s] = 1 - idc_r[s];
60 for (
int ex = 0; ex <
m_Nex; ++ex) {
61 for (
int site = 0; site <
m_Nvol; ++site) {
62 int iv =
NCD2 * (site + m_Nvol * ex);
63 for (
int s = 0; s <
ND; ++s) {
64 int iv2 = s *
NC2 + iv;
65 int iw2 =
id[s] *
NC2 + iv;
66 for (
int ic = 0; ic <
NC; ++ic) {
67 field[2 * ic + iv2] = gv_r[s] * w[2 * ic + idc_r[s] + iw2];
68 field[2 * ic + 1 + iv2] = gv_i[s] * w[2 * ic + idc_i[s] + iw2];
88 for (
int s = 0; s <
ND; ++s) {
93 idc_i[s] = 1 - idc_r[s];
99 for (
int ex = 0; ex <
m_Nex; ++ex) {
100 for (
int site = 0; site <
m_Nvol; ++site) {
101 int iv =
NCD2 * (site + m_Nvol * ex);
102 for (
int s = 0; s <
ND; ++s) {
103 int iv2 = s *
NC2 + iv;
104 int iw2 =
id[s] *
NC2 + iv;
105 for (
int ic = 0; ic <
NC; ++ic) {
106 field[2 * ic + iv2] = gv_r[s] * w[2 * ic + idc_r[s] + iw2];
107 field[2 * ic + 1 + iv2] = gv_i[s] * w[2 * ic + idc_i[s] + iw2];
127 for (
int i = 0; i <
size; ++i) {
130 }
else if (pm == -1) {
131 for (
int i = 0; i <
size; ++i) {
153 for (
int i = 0; i <
size; ++i) {
156 }
else if (pm == -1) {
157 for (
int i = 0; i <
size; ++i) {
172 assert(ex1 <= U.
nex());
173 assert(ex2 <= x.
nex());
182 for (
int site = 0; site <
m_Nvol; ++site) {
183 int ig =
NDF * (site + m_Nvol * ex1);
184 int iw =
NCD2 * (site + m_Nvol * ex2);
185 int iv =
NCD2 * (site + m_Nvol * ex);
186 for (
int s = 0; s <
ND; ++s) {
187 for (
int ic = 0; ic <
NC; ++ic) {
188 int ig2 = ic *
NC2 + ig;
189 int iw2 = s *
NC2 + iw;
190 int iv2 = s *
NC2 + iv;
191 field[2 * ic + iv2] =
192 g[0 + ig2] * w[0 + iw2] - g[1 + ig2] * w[1 + iw2]
193 + g[2 + ig2] * w[2 + iw2] - g[3 + ig2] * w[3 + iw2]
194 + g[4 + ig2] * w[4 + iw2] - g[5 + ig2] * w[5 + iw2];
195 field[2 * ic + 1 + iv2] =
196 g[0 + ig2] * w[1 + iw2] + g[1 + ig2] * w[0 + iw2]
197 + g[2 + ig2] * w[3 + iw2] + g[3 + ig2] * w[2 + iw2]
198 + g[4 + ig2] * w[5 + iw2] + g[5 + ig2] * w[4 + iw2];
210 assert(ex1 <= U.
nex());
211 assert(ex2 <= x.
nex());
220 for (
int site = 0; site <
m_Nvol; ++site) {
221 int ig =
NDF * (site + m_Nvol * ex1);
222 int iw =
NCD2 * (site + m_Nvol * ex2);
223 int iv =
NCD2 * (site + m_Nvol * ex);
224 for (
int s = 0; s <
ND; ++s) {
225 for (
int ic = 0; ic <
NC; ++ic) {
226 int ig2 = ic * 2 + ig;
227 int iw2 = s *
NC2 + iw;
228 int iv2 = s *
NC2 + iv;
229 field[2 * ic + iv2] =
230 g[0 + ig2] * w[0 + iw2] + g[1 + ig2] * w[1 + iw2]
231 + g[6 + ig2] * w[2 + iw2] + g[7 + ig2] * w[3 + iw2]
232 + g[12 + ig2] * w[4 + iw2] + g[13 + ig2] * w[5 + iw2];
233 field[2 * ic + 1 + iv2] =
234 g[0 + ig2] * w[1 + iw2] - g[1 + ig2] * w[0 + iw2]
235 + g[6 + ig2] * w[3 + iw2] - g[7 + ig2] * w[2 + iw2]
236 + g[12 + ig2] * w[5 + iw2] - g[13 + ig2] * w[4 + iw2];
245 const Field_F& x,
int ex2,
double a)
248 assert(ex1 <= U.
nex());
249 assert(ex2 <= x.
nex());
258 for (
int site = 0; site <
m_Nvol; ++site) {
259 int ig =
NDF * (site + m_Nvol * ex1);
260 int iw =
NCD2 * (site + m_Nvol * ex2);
261 int iv =
NCD2 * (site + m_Nvol * ex);
262 for (
int s = 0; s <
ND; ++s) {
263 for (
int ic = 0; ic <
NC; ++ic) {
264 int ig2 = ic *
NC2 + ig;
265 int iw2 = s *
NC2 + iw;
266 int iv2 = s *
NC2 + iv;
267 field[2 * ic + iv2] += a * (
268 g[0 + ig2] * w[0 + iw2] - g[1 + ig2] * w[1 + iw2]
269 + g[2 + ig2] * w[2 + iw2] - g[3 + ig2] * w[3 + iw2]
270 + g[4 + ig2] * w[4 + iw2] - g[5 + ig2] * w[5 + iw2]);
271 field[2 * ic + 1 + iv2] += a * (
272 g[0 + ig2] * w[1 + iw2] + g[1 + ig2] * w[0 + iw2]
273 + g[2 + ig2] * w[3 + iw2] + g[3 + ig2] * w[2 + iw2]
274 + g[4 + ig2] * w[5 + iw2] + g[5 + ig2] * w[4 + iw2]);
283 const Field_F& x,
int ex2,
double a)
286 assert(ex1 <= U.
nex());
287 assert(ex2 <= x.
nex());
296 for (
int site = 0; site <
m_Nvol; ++site) {
297 int ig =
NDF * (site + m_Nvol * ex1);
298 int iw =
NCD2 * (site + m_Nvol * ex2);
299 int iv =
NCD2 * (site + m_Nvol * ex);
300 for (
int s = 0; s <
ND; ++s) {
301 for (
int ic = 0; ic <
NC; ++ic) {
302 int ig2 = ic * 2 + ig;
303 int iw2 = s *
NC2 + iw;
304 int iv2 = s *
NC2 + iv;
305 field[2 * ic + iv2] += a * (
306 g[0 + ig2] * w[0 + iw2] + g[1 + ig2] * w[1 + iw2]
307 + g[6 + ig2] * w[2 + iw2] + g[7 + ig2] * w[3 + iw2]
308 + g[12 + ig2] * w[4 + iw2] + g[13 + ig2] * w[5 + iw2]);
309 field[2 * ic + 1 + iv2] += a * (
310 g[0 + ig2] * w[1 + iw2] - g[1 + ig2] * w[0 + iw2]
311 + g[6 + ig2] * w[3 + iw2] - g[7 + ig2] * w[2 + iw2]
312 + g[12 + ig2] * w[5 + iw2] - g[13 + ig2] * w[4 + iw2]);