36 if ((
m_Nx % 2) == 1) {
37 vout.
crucial(
"Error at %s: Nx = %d, which must be even.\n",
56 for (
int it = 0; it <
m_Nt; ++it) {
57 for (
int iz = 0; iz <
m_Nz; ++iz) {
58 for (
int iy = 0; iy <
m_Ny; ++iy) {
59 int it_global = it + ipet *
m_Nt;
60 int iz_global = iz + ipez *
m_Nz;
61 int iy_global = iy + ipey *
m_Ny;
63 = (iy_global + iz_global + it_global) % 2;
68 for (
int it = 0; it <
m_Nt; ++it) {
69 for (
int iz = 0; iz <
m_Nz; ++iz) {
70 for (
int iy = 0; iy <
m_Ny; ++iy) {
71 int iyzt = iy +
m_Ny * (iz +
m_Nz * it);
72 for (
int ix2 = 0; ix2 <
m_Nx2; ++ix2) {
92 const int Nin = field_lex.
nin();
93 const int Nex = field_lex.
nex();
98 set_threadtask(ith, nth, is, ns,
m_Nvol);
102 for (
int ex = 0; ex < Nex; ++ex) {
106 int iy = iyzt %
m_Ny;
107 int izt = iyzt /
m_Ny;
111 int ieo = (ix + iy + iz + it +
m_node_eo) % 2;
112 int site2 = this->
site(ix2, iy, iz, it, ieo);
113 for (
int in = 0; in < Nin; ++in) {
114 double vt = field_lex.
cmp(in,
site, ex);
115 field_eo.
set(in, site2, ex, vt);
128 const int Nin = field_lex.
nin();
129 const int Nex = field_lex.
nex();
133 int ith, nth, is, ns;
134 set_threadtask(ith, nth, is, ns,
m_Nvol2);
138 for (
int ex = 0; ex < Nex; ++ex) {
139 for (
int site2 = is; site2 < ns; ++site2) {
140 int ix2 = site2 %
m_Nx2;
141 int iyzt = site2 /
m_Nx2;
142 int iy = iyzt %
m_Ny;
143 int izt = iyzt /
m_Ny;
146 int keo = (iy + iz + it +
m_node_eo + ieo) % 2;
147 int ix = 2 * ix2 + keo;
149 for (
int in = 0; in < Nin; ++in) {
150 double vt = field_lex.
cmp(in,
site, ex);
151 field_eo.
set(in, site2, ex, vt);
164 const int Nin = field_lex.
nin();
165 const int Nex = field_lex.
nex();
169 int ith, nth, is, ns;
170 set_threadtask(ith, nth, is, ns,
m_Nvol2);
174 for (
int ex = 0; ex < Nex; ++ex) {
175 for (
int site2 = is; site2 < ns; ++site2) {
176 int ix2 = site2 %
m_Nx2;
177 int iyzt = site2 /
m_Nx2;
178 int iy = iyzt %
m_Ny;
179 int izt = iyzt /
m_Ny;
182 int keo = (iy + iz + it +
m_node_eo + ieo) % 2;
183 int ix = 2 * ix2 + keo;
185 for (
int in = 0; in < Nin; ++in) {
186 double vt = field_eo.
cmp(in, site2, ex);
187 field_lex.
set(in,
site, ex, vt);
199 const int Nin = field_lex.
nin();
200 const int Nex = field_lex.
nex();
204 int ith, nth, is, ns;
205 set_threadtask(ith, nth, is, ns,
m_Nvol);
209 for (
int ex = 0; ex < Nex; ++ex) {
213 int iy = iyzt %
m_Ny;
214 int izt = iyzt /
m_Ny;
218 int ieo = (ix + iy + iz + it +
m_node_eo) % 2;
219 int site2 = this->
site(ix2, iy, iz, it, ieo);
220 for (
int in = 0; in < Nin; ++in) {
221 double vt = field_eo.
cmp(in, site2, ex);
222 field_lex.
set(in,
site, ex, vt);
233 const Field& field_eo)
235 const int Nin = field_eo.
nin();
236 const int Nex = field_eo.
nex();
241 int ith, nth, is, ns;
242 set_threadtask(ith, nth, is, ns,
m_Nvol2);
246 for (
int ex = 0; ex < Nex; ++ex) {
247 for (
int site2 = is; site2 < ns; ++site2) {
248 for (
int in = 0; in < Nin; ++in) {
249 double ve = field_eo.
cmp(in, site2, ex);
250 field_e.
set(in, site2, ex, ve);
251 double vo = field_eo.
cmp(in, site2 +
m_Nvol2, ex);
252 field_o.
set(in, site2, ex, vo);
265 const int Nin = field_eo.
nin();
266 const int Nex = field_eo.
nex();
271 int ith, nth, is, ns;
272 set_threadtask(ith, nth, is, ns,
m_Nvol2);
276 for (
int ex = 0; ex < Nex; ++ex) {
277 for (
int site2 = is; site2 < ns; ++site2) {
278 for (
int in = 0; in < Nin; ++in) {
279 double ve = field_e.
cmp(in, site2, ex);
280 field_eo.
set(in, site2, ex, ve);
281 double vo = field_o.
cmp(in, site2, ex);