diff --git a/Grid/qcd/utils/GaugeGroup.h b/Grid/qcd/utils/GaugeGroup.h index 6811d247..ee4dd9fc 100644 --- a/Grid/qcd/utils/GaugeGroup.h +++ b/Grid/qcd/utils/GaugeGroup.h @@ -418,32 +418,32 @@ static void LieAlgebraProject(LatticeAlgebraMatrix &out,const LatticeMatrix &in, int hNNm1= NNm1/2; RealD sqrt_2 = sqrt(2.0); Complex ci(0.0,1.0); - for(int su2Index=0;su2IndexoSites(),1,{ + + const int nsimd= Matrix::Nsimd(); + accelerator_for(ss,grid->oSites(),nsimd,{ + for(int su2Index=0;su2IndexoSites(),vComplex::Nsimd(),{ - auto tmp = in_v[ss]()()(0,0); + coalescedWrite(out_v[ss]()()(ax,b),0.5*(real(in_v(ss)()()(i2,i1)) - real(in_v(ss)()()(i1,i2)))); + coalescedWrite(out_v[ss]()()(ay,b),0.5*(imag(in_v(ss)()()(i1,i2)) + imag(in_v(ss)()()(i2,i1)))); + } + for(int diagIndex=0;diagIndex &ta) { //////////////////////////////////////////////////////////////////////// // Map a su2 subgroup number to the pair of rows that are non zero //////////////////////////////////////////////////////////////////////// -static void su2SubGroupIndex(int &i1, int &i2, int su2_index, GroupName::SU) { +static accelerator_inline void su2SubGroupIndex(int &i1, int &i2, int su2_index, GroupName::SU) { assert((su2_index >= 0) && (su2_index < (ncolour * (ncolour - 1)) / 2)); int spare = su2_index;