norm2(const multi1d< OLattice<T> >& s1, const OrderedSubset& s)
norm2(const multi1d< OLattice<T> >& s1, const UnorderedSubset& s)
norm2(const multi1d< OLattice<T> >& s1, const OrderedSubset& s){  typename UnaryReturn<OLattice<T>, FnNorm2>::Type_t  d;  typename UnaryReturn<OScalar<T>, FnLocalNorm2>::Type_t  tmp;  // Possibly loop entered  zero_rep(d.elem());  const int istart = s.start() >> INNER_LOG;  const int iend   = s.end()   >> INNER_LOG;  for(int n=0; n < s1.size(); ++n)  {    const OLattice<T>& ss1 = s1[n];    for(int i=istart; i <= iend; ++i)     {      tmp.elem() = localNorm2(ss1.elem(i)); // Evaluate to ILattice part      d.elem() += sum(tmp.elem());    // sum as well the ILattice part    }  }  // Do a global sum on the result  Internal::globalSum(d);    return d;}