61 const int boundary_condition = 1;
64 up_x(v, w, boundary_condition);
66 up_y(v, w, boundary_condition);
68 up_z(v, w, boundary_condition);
70 up_t(v, w, boundary_condition);
81 const int boundary_condition = 1;
84 dn_x(v, w, boundary_condition);
86 dn_y(v, w, boundary_condition);
88 dn_z(v, w, boundary_condition);
90 dn_t(v, w, boundary_condition);
101 const int boundary_condition,
const int mu)
104 up_x(v, w, boundary_condition);
105 }
else if (mu == 1) {
106 up_y(v, w, boundary_condition);
107 }
else if (mu == 2) {
108 up_z(v, w, boundary_condition);
109 }
else if (mu == 3) {
110 up_t(v, w, boundary_condition);
121 const int boundary_condition,
const int mu)
124 dn_x(v, w, boundary_condition);
125 }
else if (mu == 1) {
126 dn_y(v, w, boundary_condition);
127 }
else if (mu == 2) {
128 dn_z(v, w, boundary_condition);
129 }
else if (mu == 3) {
130 dn_t(v, w, boundary_condition);
148 int ith, nth, is, ns;
149 set_threadtask(ith, nth, is, ns,
m_Nvol);
173 for (
int ex = 0; ex < Nex; ++ex) {
175 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
177 for (
int site = is; site < ns; ++site) {
178 int ix = site %
m_Nx;
179 int iyzt = site /
m_Nx;
181 for (
int in = 0; in < Nin; ++in) {
182 wt[in + Nin * iyzt] = bc2 * wp[in + Nin * site];
197 for (
int site = is; site < ns; ++site) {
198 int ix = site %
m_Nx;
199 int iyzt = site /
m_Nx;
200 int nei = ix + 1 +
m_Nx * iyzt;
202 for (
int in = 0; in < Nin; ++in) {
203 vp[in + Nin * site] = wp[in + Nin * nei];
206 for (
int in = 0; in < Nin; ++in) {
207 vp[in + Nin * site] = vt[in + Nin * iyzt];
213 if ((
m_Nin == 0) && (ith == 0)) {
231 int ith, nth, is, ns;
232 set_threadtask(ith, nth, is, ns,
m_Nvol);
256 for (
int ex = 0; ex < Nex; ++ex) {
258 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
260 for (
int site = is; site < ns; ++site) {
261 int ix = site %
m_Nx;
262 int iyzt = site /
m_Nx;
263 if (ix ==
m_Nx - 1) {
264 for (
int in = 0; in < Nin; ++in) {
265 wt[in + Nin * iyzt] = wp[in + Nin * site];
280 for (
int site = is; site < ns; ++site) {
281 int ix = site %
m_Nx;
282 int iyzt = site /
m_Nx;
283 int nei = ix - 1 +
m_Nx * iyzt;
285 for (
int in = 0; in < Nin; ++in) {
286 vp[in + Nin * site] = wp[in + Nin * nei];
289 for (
int in = 0; in < Nin; ++in) {
290 vp[in + Nin * site] = bc2 * vt[in + Nin * iyzt];
296 if ((
m_Nin == 0) && (ith == 0)) {
314 int ith, nth, is, ns;
315 set_threadtask(ith, nth, is, ns,
m_Nvol);
339 for (
int ex = 0; ex < Nex; ++ex) {
341 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
343 for (
int site = is; site < ns; ++site) {
344 int ix = site %
m_Nx;
345 int iyzt = site /
m_Nx;
346 int iy = iyzt %
m_Ny;
347 int izt = iyzt /
m_Ny;
348 int ixzt = ix +
m_Nx * izt;
350 for (
int in = 0; in < Nin; ++in) {
351 wt[in + Nin * ixzt] = bc2 * wp[in + Nin * site];
366 for (
int site = is; site < ns; ++site) {
367 int ix = site %
m_Nx;
368 int iyzt = site /
m_Nx;
369 int iy = iyzt %
m_Ny;
370 int izt = iyzt /
m_Ny;
371 int ixzt = ix +
m_Nx * izt;
372 int nei = ix +
m_Nx * (iy + 1 +
m_Ny * izt);
375 for (
int in = 0; in < Nin; ++in) {
376 vp[in + Nin * site] = wp[in + Nin * nei];
379 for (
int in = 0; in < Nin; ++in) {
380 vp[in + Nin * site] = vt[in + Nin * ixzt];
386 if ((
m_Nin == 0) && (ith == 0)) {
404 int ith, nth, is, ns;
405 set_threadtask(ith, nth, is, ns,
m_Nvol);
429 for (
int ex = 0; ex < Nex; ++ex) {
431 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
433 for (
int site = is; site < ns; ++site) {
434 int ix = site %
m_Nx;
435 int iyzt = site /
m_Nx;
436 int iy = iyzt %
m_Ny;
437 int izt = iyzt /
m_Ny;
438 int ixzt = ix +
m_Nx * izt;
439 if (iy ==
m_Ny - 1) {
440 for (
int in = 0; in < Nin; ++in) {
441 wt[in + Nin * ixzt] = wp[in + Nin * site];
456 for (
int site = is; site < ns; ++site) {
457 int ix = site %
m_Nx;
458 int iyzt = site /
m_Nx;
459 int iy = iyzt %
m_Ny;
460 int izt = iyzt /
m_Ny;
461 int ixzt = ix +
m_Nx * izt;
462 int nei = ix +
m_Nx * (iy - 1 +
m_Ny * izt);
465 for (
int in = 0; in < Nin; ++in) {
466 vp[in + Nin * site] = wp[in + Nin * nei];
469 for (
int in = 0; in < Nin; ++in) {
470 vp[in + Nin * site] = bc2 * vt[in + Nin * ixzt];
476 if ((
m_Nin == 0) && (ith == 0)) {
494 int ith, nth, is, ns;
495 set_threadtask(ith, nth, is, ns,
m_Nvol);
521 for (
int ex = 0; ex < Nex; ++ex) {
523 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
525 for (
int site = is; site < ns; ++site) {
526 int ixy = site % Nxy;
527 int izt = site / Nxy;
530 int ixyt = ixy + Nxy * it;
532 for (
int in = 0; in < Nin; ++in) {
533 wt[in + Nin * ixyt] = bc2 * wp[in + Nin * site];
548 for (
int site = is; site < ns; ++site) {
549 int ixy = site % Nxy;
550 int izt = site / Nxy;
553 int ixyt = ixy + Nxy * it;
554 int nei = ixy + Nxy * (iz + 1 +
m_Nz * it);
557 for (
int in = 0; in < Nin; ++in) {
558 vp[in + Nin * site] = wp[in + Nin * nei];
561 for (
int in = 0; in < Nin; ++in) {
562 vp[in + Nin * site] = vt[in + Nin * ixyt];
568 if ((
m_Nin == 0) && (ith == 0)) {
586 int ith, nth, is, ns;
587 set_threadtask(ith, nth, is, ns,
m_Nvol);
613 for (
int ex = 0; ex < Nex; ++ex) {
615 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
617 for (
int site = is; site < ns; ++site) {
618 int ixy = site % Nxy;
619 int izt = site / Nxy;
622 int ixyt = ixy + Nxy * it;
623 if (iz ==
m_Nz - 1) {
624 for (
int in = 0; in < Nin; ++in) {
625 wt[in + Nin * ixyt] = wp[in + Nin * site];
640 for (
int site = is; site < ns; ++site) {
641 int ixy = site % Nxy;
642 int izt = site / Nxy;
645 int ixyt = ixy + Nxy * it;
646 int nei = ixy + Nxy * (iz - 1 +
m_Nz * it);
649 for (
int in = 0; in < Nin; ++in) {
650 vp[in + Nin * site] = wp[in + Nin * nei];
653 for (
int in = 0; in < Nin; ++in) {
654 vp[in + Nin * site] = bc2 * vt[in + Nin * ixyt];
660 if ((
m_Nin == 0) && (ith == 0)) {
678 int ith, nth, is, ns;
679 set_threadtask(ith, nth, is, ns,
m_Nvol);
705 for (
int ex = 0; ex < Nex; ++ex) {
707 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
709 for (
int site = is; site < ns; ++site) {
710 int ixyz = site % Nxyz;
711 int it = site / Nxyz;
713 for (
int in = 0; in < Nin; ++in) {
714 wt[in + Nin * ixyz] = bc2 * wp[in + Nin * site];
729 for (
int site = is; site < ns; ++site) {
730 int ixyz = site % Nxyz;
731 int it = site / Nxyz;
732 int nei = ixyz + Nxyz * (it + 1);
735 for (
int in = 0; in < Nin; ++in) {
736 vp[in + Nin * site] = wp[in + Nin * nei];
739 for (
int in = 0; in < Nin; ++in) {
740 vp[in + Nin * site] = vt[in + Nin * ixyz];
746 if ((
m_Nin == 0) && (ith == 0)) {
764 int ith, nth, is, ns;
765 set_threadtask(ith, nth, is, ns,
m_Nvol);
791 for (
int ex = 0; ex < Nex; ++ex) {
793 const double *wp = w.
ptr(Nin *
m_Nvol * ex);
795 for (
int site = is; site < ns; ++site) {
796 int ixyz = site % Nxyz;
797 int it = site / Nxyz;
798 if (it ==
m_Nt - 1) {
799 for (
int in = 0; in < Nin; ++in) {
800 wt[in + Nin * ixyz] = wp[in + Nin * site];
815 for (
int site = is; site < ns; ++site) {
816 int ixyz = site % Nxyz;
817 int it = site / Nxyz;
818 int nei = ixyz + Nxyz * (it - 1);
821 for (
int in = 0; in < Nin; ++in) {
822 vp[in + Nin * site] = wp[in + Nin * nei];
825 for (
int in = 0; in < Nin; ++in) {
826 vp[in + Nin * site] = bc2 * vt[in + Nin * ixyz];
832 if ((
m_Nin == 0) && (ith == 0)) {