gather_sites(IScalar<T>& d, const IScalar<T1>& s0, int i0, const IScalar<T1>& s1, int i1, const IScalar<T1>& s2, int i2, const IScalar<T1>& s3, int i3)
gather_sites(ILattice<T,4>& d, const ILattice<T1,4>& s0, int i0, const ILattice<T1,4>& s1, int i1, const ILattice<T1,4>& s2, int i2, const ILattice<T1,4>& s3, int i3)
gather_sites(IScalar<T>& d, 	     const IScalar<T1>& s0, int i0, 	     const IScalar<T1>& s1, int i1,	     const IScalar<T1>& s2, int i2,	     const IScalar<T1>& s3, int i3){  gather_sites(d.elem(), 	       s0.elem(), i0, 	       s1.elem(), i1, 	       s2.elem(), i2, 	       s3.elem(), i3);}