OLattice<T2>& dest = d.field(); const Subset& s = d.subset();  const int *tab = s.SiteTable()->slice(); for(int j=0; j < s.NumSiteTable(); ++j) { int i = tab[j];
for(int i=0; i < Layout::vol(); ++i)
void copymask(OSubLattice<T2> d, const OLattice<T1>& mask, const OLattice<T2>& s1) {  OLattice<T2>& dest = d.field();  const Subset& s = d.subset();  const int *tab = s.SiteTable()->slice();  for(int j=0; j < s.NumSiteTable(); ++j)   {    int i = tab[j];    copymask(dest.elem(i), mask.elem(i), s1.elem(i));  }}