void CloverLeaf2x2(Lattice& lattice, Matrix& pl, int* pos, int mu, int nu) { Matrix P0,P1,P2,P3; // 1x2 size P0.ZeroMatrix(); P1.ZeroMatrix(); P2.ZeroMatrix(); P3.ZeroMatrix(); // each direction could be {0,1,2,3,4,5,6,7} coresponding to // the directions {n_x, n_y, n_z, n_t, -n_x, -n_y, -n_z, -n_t} int dirs0[8]={mu,mu, nu, nu, mu+4,mu+4, nu+4, nu+4}; lattice.PathOrdProdPlus(P0, pos, dirs0, 8); int dirs1[8]={nu+4, nu+4, mu+4, mu+4, nu, nu, mu,mu }; lattice.PathOrdProdPlus(P1, pos, dirs1, 8); int dirs2[8]={nu, nu, mu+4, mu+4, nu+4, nu+4, mu, mu }; lattice.PathOrdProdPlus(P2, pos, dirs2, 8); int dirs3[8]={mu,mu, nu+4, nu+4, mu+4, mu+4, nu, nu }; lattice.PathOrdProdPlus(P3, pos, dirs3, 8); P0 -= P1; P0 += P2; P0 -= P3; P0 *= 1.0/16; moveMem((Float*) &pl,(Float*) &P0, 18 * sizeof(Float) ); }