const QDPType< TVec, OLattice<TVec> > &v2, const Subset& s)
const QDPType< TVec, OLattice<TVec> > &v2)
innerProductReal(const QDPType< TVec, OLattice<TVec> > &v1,		 const QDPType< TVec, OLattice<TVec> > &v2, 		 const Subset& s){  if( s.hasOrderedRep() ) {#ifdef DEBUG_BLAS    QDPIO::cout << "BJ: innerProductReal s" << endl;#endif    // This BinaryReturn has Type_t    // OScalar<OScalar<OScalar<RScalar<PScalar<REAL> > > > >    BinaryReturn< OLattice<TVec>, OLattice<TVec>, FnInnerProductReal>::Type_t lprod;    DOUBLE ip_re=0;    unsigned long n_3vec = (s.end() - s.start() + 1)*Ns;    local_vcdot_real(&ip_re,		     (REAL *)&(v1.elem(s.start()).elem(0).elem(0).real().elem()),		     (REAL *)&(v2.elem(s.start()).elem(0).elem(0).real().elem()),		     n_3vec);    Internal::globalSum(ip_re);    lprod.elem().elem().elem().elem().elem() = (REAL)ip_re;    return lprod;  }  else {    return sum(localInnerProductReal(v1, v2),s);  }}