This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
"Fast-Regs" GCC extensions proposal: part #1 [missing attachments!]
- To: gcc at gcc dot gnu dot org
- Subject: "Fast-Regs" GCC extensions proposal: part #1 [missing attachments!]
- From: Benedetto Proietti <benedetto73 at iol dot it>
- Date: Fri, 25 May 2001 09:41:51 +0200
Ooops!
Sorry,
here are two attachments missing in the first mail!
;)
bye
bp
// dirac_qphi.cc -- phi[j] = Q phi[k]
//
// where Q is gamma_5 times Wilson-Dirac opeartor with boundary phases
//
// hs 12/98
//
// $Id: $
// ---------------------------------------------------------
#include "dirac_qphi.h"
void dirac_qphi2(int k,int j)
{
int ipx, ipy, ipz, imx, imy, imz;
int is, ix, it;
#ifdef GCC_COMPLEX
COMPLEX_TYPE rc0,rk0,rk1,rk2;
#else
FLOAT_TYPE rc0,rk0,rk1,rk2;
#endif
su3* pu;
su3_spinor *pp, *pres;
su3_vector psi_a, psi_b, chi_a, chi_b;
#define P1 (*pp).v1
#define P2 (*pp).v2
#define P3 (*pp).v3
#define P4 (*pp).v4
#define R1 (*pres).v1
#define R2 (*pres).v2
#define R3 (*pres).v3
#define R4 (*pres).v4
#define CHI_A chi_a
#define CHI_B chi_b
#define PSI_A psi_a
#define PSI_B psi_b
for (ix=0; ix < vol3-1; ix++ )
{
ipx = next_px[ix];
ipy = next_py[ix];
ipz = next_pz[ix];
imx = next_mx[ix];
imy = next_my[ix];
imz = next_mz[ix];
for (it = 0; it < time_size-1; it++ )
{ // it=1 ... for SFBC
rk2 = dirac_k2;
rk1 = dirac_k1;
rc0 = dirac_c0; // rk0 = dirac_k0 //!! was for SFBC
// contribution of the direction +1 (+x):
// --------------------------------------
pp = &phi[k][it][ipx];
pu = &u[it][ix][1];
pres = &phi[j][it][ix];
*(pres) = phi[k][it][ix];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +I , P4 );
V_M_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, +IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R4, += IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, +I , P3 );
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, +IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, +I , P4 );
V_V_F_V( PSI_B, = P2, +I , P3 );
V_M_V( CHI_A, (*pu), PSI_A );
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, +IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, +IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_B );
V_F_R_V ( R4, += IR, rk1 , PSI_A );
#endif
// contribution of the direction -1 (-x):
// --------------------------------------
pp = &phi[k][it][imx];
pu = &u[it][imx][1];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -I, P4 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1* PSI_A );
V_F_R_V ( R4, -= IR, rk1, PSI_A );
V_V_F_V( PSI_B, = P2, -I, P3 );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1* PSI_B );
V_F_R_V ( R3, -= IR, rk1, PSI_B );
#else
V_V_F_V( PSI_A, = P1, -I, P4 );
V_V_F_V( PSI_B, = P2, -I, P3 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1* PSI_A );
V_V ( R2, -= rk1* PSI_B );
V_F_R_V ( R3, -= IR, rk1, PSI_B );
V_F_R_V ( R4, -= IR, rk1, PSI_A );
#endif
// contribution of the direction +2 (+y):
// --------------------------------------
pp = &phi[k][it][ipy];
pu = &u[it][ix][2];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +, P4);
V_M_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R4, -= rk1 * PSI_A );
V_V_F_V( PSI_B, = P2, -, P3);
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_V ( R3, += rk1 * PSI_B );
#else
V_V_F_V( PSI_A, = P1, +, P4);
V_V_F_V( PSI_B, = P2, -, P3);
V_M_V( CHI_A, (*pu), PSI_A );
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_V ( R3, += rk1 * PSI_B );
V_V ( R4, -= rk1 * PSI_A );
#endif
// contribution of the direction -2 (-y):
// ---------------------------------------
pp = &phi[k][it][imy];
pu = &u[it][imy][2];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -, P4 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1*PSI_A );
V_V ( R4, += rk1*PSI_A );
V_V_F_V( PSI_B, = P2, +, P3 );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1*PSI_B );
V_V ( R3, -= rk1*PSI_B );
#else
V_V_F_V( PSI_A, = P1, -, P4 );
V_V_F_V( PSI_B, = P2, +, P3 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1*PSI_A );
V_V ( R2, -= rk1*PSI_B );
V_V ( R3, -= rk1*PSI_B );
V_V ( R4, += rk1*PSI_A );
#endif
// contribution of the direction +3 (+z):
// --------------------------------------
pp = &phi[k][it][ipz];
pu = &u[it][ix][3];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +I, P3 );
V_M_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R3, += IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, -I, P4 );
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R4, -= IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, +I, P3 );
V_V_F_V( PSI_B, = P2, -I, P4 );
V_M_V( CHI_A, (*pu), PSI_A );
V_M_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_A );
V_F_R_V ( R4, -= IR, rk1 , PSI_B );
#endif
// contribution of the direction -3 (-z):
// ---------------------------------------
pp = &phi[k][it][imz];
pu = &u[it][imz][3];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -I, P3 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R3, -= IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, +I, P4 );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R4, += IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, -I, P3 );
V_V_F_V( PSI_B, = P2, +I, P4 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, -= IR, rk1 , PSI_A );
V_F_R_V ( R4, += IR, rk1 , PSI_B );
#endif
// contribution of the direction +0 (+t):
// --------------------------------------
rk0 = dirac_k0*dirac_apbcp[it];
is = next_pt[it];
pp = &phi[k][is][ix];
pu = &u[it][ix][0];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +, P3 );
V_M_V( CHI_A, (*pu), PSI_A );
V_V ( R1, -= rk0*CHI_A );
V_V ( R3, -= rk0*CHI_A );
V_V_F_V( PSI_B, = P2, +, P4 );
V_M_V( CHI_B, (*pu), PSI_B );
V_V ( R2, -= rk0*CHI_B );
V_V ( R4, -= rk0*CHI_B );
#else
V_V_F_V( PSI_A, = P1, +, P3 );
V_V_F_V( PSI_B, = P2, +, P4 );
V_M_V( CHI_A, (*pu), PSI_A );
V_M_V( CHI_B, (*pu), PSI_B );
V_V ( R1, -= rk0*CHI_A );
V_V ( R2, -= rk0*CHI_B );
V_V ( R3, -= rk0*CHI_A );
V_V ( R4, -= rk0*CHI_B );
#endif
// contribution of the direction -0 (-t):
// --------------------------------------
rk0 = dirac_k0*dirac_apbcm[it];
is = next_mt[it];
pp = &phi[k][is][ix];
pu = &u[is][ix][0];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -, P3 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_V ( R1, -= rk0*CHI_A );
V_V ( R3, += rk0*CHI_A );
V_V_F_V( PSI_B, = P2, -, P4 ); // ca
V_MC_V( CHI_B, (*pu), PSI_B );
V_V ( R2, -= rk0*CHI_B );
V_V ( R4, += rk0*CHI_B );
#else
V_V_F_V( PSI_A, = P1, -, P3 );
V_V_F_V( PSI_B, = P2, -, P4 );
V_MC_V( CHI_A, (*pu), PSI_A );
V_MC_V( CHI_B, (*pu), PSI_B );
V_V ( R1, -= rk0*CHI_A );
V_V ( R2, -= rk0*CHI_B );
V_V ( R3, += rk0*CHI_A );
V_V ( R4, += rk0*CHI_B );
#endif
// multiplication with prefactor and gamma_5:
// ------------------------------------------
V_V ( R1, = rc0 * R1 );
V_V ( R2, = rc0 * R2 );
V_V ( R3, = - rc0 * R3 );
V_V ( R4, = - rc0 * R4 );
phi[j][it][ix] = *pres;
}
}
}
// ------------------------------ EOF ---------------------------------
// dirac_qphi.cc -- phi[j] = Q phi[k]
//
// where Q is gamma_5 times Wilson-Dirac opeartor with boundary phases
//
// hs 12/98
//
// $Id: $ With "register struct"
// ---------------------------------------------------------
#include "global.h"
#include "dirac_qphi.h"
complex ciccio;
void dirac_qphi2(int k,int j)
{
register int ipx, ipy, ipz, imx, imy, imz;
register int is, ix, it;
#ifdef GCC_COMPLEX
register complex rc0,rk0,rk1,rk2;
#else
register FLOAT_TYPE rc0,rk0,rk1,rk2;
#endif
register su3 pu;
register su3_spinor pp, pres;
register su3_vector psi_a, psi_b, chi_a, chi_b;
#define P1 pp.v1
#define P2 pp.v2
#define P3 pp.v3
#define P4 pp.v4
#define R1 pres.v1
#define R2 pres.v2
#define R3 pres.v3
#define R4 pres.v4
#define CHI_A chi_a
#define CHI_B chi_b
#define PSI_A psi_a
#define PSI_B psi_b
for (ix=0; ix < vol3-1; ix++ )
{
ipx = next_px[ix];
ipy = next_py[ix];
ipz = next_pz[ix];
imx = next_mx[ix];
imy = next_my[ix];
imz = next_mz[ix];
for (it = 0 ; it < time_size-1; it++ )
{ // it=1 ... for SFBC
rk2 = dirac_k2;
rk1 = dirac_k1;
rc0 = dirac_c0; // rk0 = dirac_k0 //!! was for SFBC
// contribution of the direction +1 (+x):
// --------------------------------------
pp = phi[k][it][ipx]; //load pp
pu = u[it][ix][1]; //load pu
pres = phi[k][it][ix]; //load pres
#ifdef SWAP
V_V_F_V(PSI_A,= P1,+I,P4);
V_M_V( CHI_A, pu, PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, +IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R4, += IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, +I , P3 );
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, +IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, +I , P4 );
V_V_F_V( PSI_B, = P2, +I , P3 );
V_M_V( CHI_A, (pu), PSI_A );
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, +IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, +IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_B );
V_F_R_V ( R4, += IR, rk1 , PSI_A );
#endif
// contribution of the direction -1 (-x):
// --------------------------------------
pp = phi[k][it][imx];
pu = u[it][imx][1];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -I, P4 );
V_MC_V( CHI_A, (pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1* PSI_A );
V_F_R_V ( R4, -= IR, rk1, PSI_A );
V_V_F_V( PSI_B, = P2, -I, P3 );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1* PSI_B );
V_F_R_V ( R3, -= IR, rk1, PSI_B );
#else
V_V_F_V( PSI_A, = P1, -I, P4 );
V_V_F_V( PSI_B, = P2, -I, P3 );
V_MC_V( CHI_A, (pu), PSI_A );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1* PSI_A );
V_V ( R2, -= rk1* PSI_B );
V_F_R_V ( R3, -= IR, rk1, PSI_B );
V_F_R_V ( R4, -= IR, rk1, PSI_A );
#endif
// contribution of the direction +2 (+y):
// --------------------------------------
pp = phi[k][it][ipy];
pu = u[it][ix][2];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +, P4);
V_M_V( CHI_A, (pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R4, -= rk1 * PSI_A );
V_V_F_V( PSI_B, = P2, -, P3);
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_V ( R3, += rk1 * PSI_B );
#else
V_V_F_V( PSI_A, = P1, +, P4);
V_V_F_V( PSI_B, = P2, -, P3);
V_M_V( CHI_A, (pu), PSI_A );
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_V ( R3, += rk1 * PSI_B );
V_V ( R4, -= rk1 * PSI_A );
#endif
// contribution of the direction -2 (-y):
// ---------------------------------------
pp = phi[k][it][imy];
pu = u[it][imy][2];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -, P4 );
V_MC_V( CHI_A, (pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1*PSI_A );
V_V ( R4, += rk1*PSI_A );
V_V_F_V( PSI_B, = P2, +, P3 );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1*PSI_B );
V_V ( R3, -= rk1*PSI_B );
#else
V_V_F_V( PSI_A, = P1, -, P4 );
V_V_F_V( PSI_B, = P2, +, P3 );
V_MC_V( CHI_A, (pu), PSI_A );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1*PSI_A );
V_V ( R2, -= rk1*PSI_B );
V_V ( R3, -= rk1*PSI_B );
V_V ( R4, += rk1*PSI_A );
#endif
// contribution of the direction +3 (+z):
// --------------------------------------
pp = phi[k][it][ipz];
pu = u[it][ix][3];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +I, P3 );
V_M_V( CHI_A, (pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R3, += IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, -I, P4 );
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R4, -= IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, +I, P3 );
V_V_F_V( PSI_B, = P2, -I, P4 );
V_M_V( CHI_A, (pu), PSI_A );
V_M_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, + IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, + IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, += IR, rk1 , PSI_A );
V_F_R_V ( R4, -= IR, rk1 , PSI_B );
#endif
// contribution of the direction -3 (-z):
// ---------------------------------------
pp = phi[k][it][imz];
pu = u[it][imz][3];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -I, P3 );
V_MC_V( CHI_A, (pu), PSI_A );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V ( R1, -= rk1 * PSI_A );
V_F_R_V ( R3, -= IR, rk1 , PSI_A );
V_V_F_V( PSI_B, = P2, +I, P4 );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R4, += IR, rk1 , PSI_B );
#else
V_V_F_V( PSI_A, = P1, -I, P3 );
V_V_F_V( PSI_B, = P2, +I, P4 );
V_MC_V( CHI_A, (pu), PSI_A );
V_MC_V( CHI_B, (pu), PSI_B );
V_V_F_R_V( PSI_A, = CHI_A, - IR, rk2, CHI_A );
V_V_F_R_V( PSI_B, = CHI_B, - IR, rk2, CHI_B );
V_V ( R1, -= rk1 * PSI_A );
V_V ( R2, -= rk1 * PSI_B );
V_F_R_V ( R3, -= IR, rk1 , PSI_A );
V_F_R_V ( R4, += IR, rk1 , PSI_B );
#endif
// contribution of the direction +0 (+t):
// --------------------------------------
rk0 = dirac_k0*dirac_apbcp[it];
is = next_pt[it];
pp = phi[k][is][ix];
pu = u[it][ix][0];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, +, P3 );
V_M_V( CHI_A, (pu), PSI_A );
V_V ( R1, -= rk0*CHI_A );
V_V ( R3, -= rk0*CHI_A );
V_V_F_V( PSI_B, = P2, +, P4 );
V_M_V( CHI_B, (pu), PSI_B );
V_V ( R2, -= rk0*CHI_B );
V_V ( R4, -= rk0*CHI_B );
#else
V_V_F_V( PSI_A, = P1, +, P3 );
V_V_F_V( PSI_B, = P2, +, P4 );
V_M_V( CHI_A, (pu), PSI_A );
V_M_V( CHI_B, (pu), PSI_B );
V_V ( R1, -= rk0*CHI_A );
V_V ( R2, -= rk0*CHI_B );
V_V ( R3, -= rk0*CHI_A );
V_V ( R4, -= rk0*CHI_B );
#endif
// contribution of the direction -0 (-t):
// --------------------------------------
rk0 = dirac_k0*dirac_apbcm[it];
is = next_mt[it];
pp = phi[k][is][ix];
pu = u[is][ix][0];
#ifdef SWAP
V_V_F_V( PSI_A, = P1, -, P3 );
V_MC_V( CHI_A, (pu), PSI_A );
V_V ( R1, -= rk0*CHI_A );
V_V ( R3, += rk0*CHI_A );
V_V_F_V( PSI_B, = P2, -, P4 );
V_MC_V( CHI_B, (pu), PSI_B );
V_V ( R2, -= rk0*CHI_B );
V_V ( R4, += rk0*CHI_B );
#else
V_V_F_V( PSI_A, = P1, -, P3 );
V_V_F_V( PSI_B, = P2, -, P4 );
V_MC_V( CHI_A, (pu), PSI_A );
V_MC_V( CHI_B, (pu), PSI_B );
V_V ( R1, -= rk0*CHI_A );
V_V ( R2, -= rk0*CHI_B );
V_V ( R3, += rk0*CHI_A );
V_V ( R4, += rk0*CHI_B );
#endif
// multiplication with prefactor and gamma_5:
// ------------------------------------------
V_OPC ( R1, *= rc0 );
V_OPC ( R2, *= rc0 );
V_OPC ( R3, *= - rc0 );
V_OPC ( R4, *= - rc0 );
phi[j][it][ix] = pres;
}
}
}
// ------------------------------ EOF ---------------------------------