typedef OLattice<T> C; typedef UnaryNode<FnSum, typename CreateLeaf<QDPExpr<RHS,C> >::Leaf_t> Tree_t; typedef typename UnaryReturn<C,FnSum>::Type_t Container_t; static QDPProfile_t prof(dest[0], OpAssign(), MakeReturn<Tree_t,Container_t>::make(Tree_t( CreateLeaf<QDPExpr<RHS,C> >::make(s1))));
static QDPProfile_t prof(dest[0], OpAssign(), FnSum(), s1);
sumMulti(const QDPExpr<RHS,OLattice<T> >& s1, const Set& ss){  typename UnaryReturn<OLattice<T>, FnSumMulti>::Type_t  dest(ss.numSubsets());#if defined(QDP_USE_PROFILING)     typedef OLattice<T> C;  typedef UnaryNode<FnSum, typename CreateLeaf<QDPExpr<RHS,C> >::Leaf_t> Tree_t;  typedef typename UnaryReturn<C,FnSum>::Type_t Container_t;  static QDPProfile_t prof(dest[0], OpAssign(), 			   MakeReturn<Tree_t,Container_t>::make(Tree_t(			     CreateLeaf<QDPExpr<RHS,C> >::make(s1))));  prof.time -= getClockTime();#endif  // Initialize result with zero  for(int k=0; k < ss.numSubsets(); ++k)    zero_rep(dest[k]);  // Loop over all sites and accumulate based on the coloring   const multi1d<int>& lat_color =  ss.latticeColoring();  const int vvol = Layout::vol();  for(int i=0; i < vvol; ++i)   {    int j = lat_color[i];    dest[j].elem() += forEach(s1, EvalLeaf1(i), OpCombine());   // SINGLE NODE VERSION FOR NOW  }#if defined(QDP_USE_PROFILING)     prof.time += getClockTime();  prof.count++;  prof.print();#endif  return dest;}