diff --git a/lib/qcd/utils/LinalgUtils.h b/lib/qcd/utils/LinalgUtils.h index ef85e728..9ad2786e 100644 --- a/lib/qcd/utils/LinalgUtils.h +++ b/lib/qcd/utils/LinalgUtils.h @@ -32,10 +32,11 @@ void ag5xpby_ssp(Lattice &z,RealD a,const Lattice &x,RealD b,const L conformable(x,z); GridBase *grid=x._grid; int Ls = grid->_rdimensions[0]; + Gamma G5(Gamma::Gamma5); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss+=Ls){ // adds Ls vobj tmp; - multGamma5(tmp(),a*x._odata[ss+s]()); + tmp = G5*x._odata[ss+s]*a; tmp = tmp + b*y._odata[ss+sp]; vstream(z._odata[ss+s],tmp); } @@ -49,10 +50,11 @@ void axpbg5y_ssp(Lattice &z,RealD a,const Lattice &x,RealD b,const L conformable(x,z); GridBase *grid=x._grid; int Ls = grid->_rdimensions[0]; + Gamma G5(Gamma::Gamma5); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss+=Ls){ // adds Ls vobj tmp; - multGamma5(tmp(),b*y._odata[ss+sp]()); + tmp = G5*y._odata[ss+sp]*b; tmp = tmp + a*x._odata[ss+s]; vstream(z._odata[ss+s],tmp); } @@ -66,12 +68,13 @@ void ag5xpbg5y_ssp(Lattice &z,RealD a,const Lattice &x,RealD b,const conformable(x,z); GridBase *grid=x._grid; int Ls = grid->_rdimensions[0]; + Gamma G5(Gamma::Gamma5); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss+=Ls){ // adds Ls vobj tmp1; vobj tmp2; tmp1 = a*x._odata[ss+s]+b*y._odata[ss+sp]; - multGamma5(tmp2(),tmp1()); + tmp2 = G5*tmp1; vstream(z._odata[ss+s],tmp2); } } @@ -117,12 +120,13 @@ void G5R5(Lattice &z,const Lattice &x) z.checkerboard = x.checkerboard; conformable(x,z); int Ls = grid->_rdimensions[0]; + Gamma G5(Gamma::Gamma5); PARALLEL_FOR_LOOP for(int ss=0;ssoSites();ss+=Ls){ // adds Ls vobj tmp; for(int s=0;s