const int iend = Layout::outerSitesOnNode(); for(int i=0; i < iend; ++i)
const int istart = s.start() >> INNER_LOG; const int iend   = s.end()   >> INNER_LOG;  for(int i=istart; i <= iend; ++i)
sum(const QDPExpr<RHS,OLattice<T> >& s1){  typename UnaryReturn<OLattice<T>, FnSum>::Type_t  d;  OScalar<T> tmp;   // Note, expect to have ILattice inner grid  // Loop always entered - could unroll  zero_rep(d.elem());  const int iend = Layout::outerSitesOnNode();  for(int i=0; i < iend; ++i)   {    tmp.elem() = forEach(s1, EvalLeaf1(i), OpCombine()); // Evaluate to ILattice part    d.elem() += sum(tmp.elem());    // sum as well the ILattice part  }  return d;}