return lsum;
ret_val.elem().elem().elem().elem().elem() = lsum; return ret_val;
norm2(const QDPType<TVec ,OLattice< TVec > >& s1, const Subset& s){#ifdef DEBUG_BLAS  QDPIO::cout << "Using BJ sumsq" << endl;#endif  if ( s.hasOrderedRep() ) {#ifdef DEBUG_BLAS    QDPIO::cout << "BJ sumsq " << endl;#endif    int n_3vec = (s.end() - s.start() + 1)*Ns;    const REAL *s1ptr =  &(s1.elem(s.start()).elem(0).elem(0).real().elem());        // Has Type OScalar< PScalar < PScalar < RScalar < PScalar < REAL > > > > >    UnaryReturn< OLattice< TVec >, FnNorm2>::Type_t  lsum;    lsum = Double(0);        local_sumsq((DOUBLE *)&(lsum.elem().elem().elem().elem().elem()),		(REAL *)s1ptr, 	       n_3vec);     Internal::globalSum(lsum);    return lsum;  }  else {   return sum(localNorm2(s1),s);  }}