unsigned long n_3vec = (all.end() - all.start() + 1)*Ns;
unsigned long n_3vec = (s.end() - s.start() + 1)*Ns;
innerProductReal(const QDPType< TVec, OLattice<TVec> > &v1,		 const QDPType< TVec, OLattice<TVec> > &v2){  if( all.hasOrderedRep() ) {#ifdef DEBUG_BLAS    QDPIO::cout << "BJ: innerProductReal all" << endl;#endif    // This BinaryReturn has Type_t    // OScalar<OScalar<OScalar<RScalar<PScalar<REAL> > > > >    BinaryReturn< OLattice<TVec>, OLattice<TVec>, FnInnerProductReal>::Type_t lprod;    // Inner product is accumulated internally in DOUBLE    DOUBLE ip_re=0;    // Length of subset     unsigned long n_3vec = (all.end() - all.start() + 1)*Ns;    // Call My CDOT    local_vcdot_real(&ip_re,		(REAL *)&(v1.elem(all.start()).elem(0).elem(0).real()),		(REAL *)&(v2.elem(all.start()).elem(0).elem(0).real()),		n_3vec);    // Global sum    Internal::globalSum(ip_re);    // Whether CDOT did anything or not ip_re and ip_im should     // now be right. Assign them to the ReturnType    lprod.elem().elem().elem().elem() = (REAL)ip_re;    // Return    return lprod;  }  else {    // Do localInnerProduct    // then sum    return sum(localInnerProductReal(v1, v2),all);  }}