typedef OLattice<T> C1; typedef UnaryNode<FnSum, typename CreateLeaf<QDPExpr<RHS,C1> >::Leaf_t> Tree_t; typedef typename UnaryReturn<C1,FnSum>::Type_t Container_t; static QDPProfile_t prof(d, OpAssign(), MakeReturn<Tree_t,Container_t>::make(Tree_t( CreateLeaf<QDPExpr<RHS,C1> >::make(s1))));
static QDPProfile_t prof(d, OpAssign(), FnSum(), s1);
sum(const QDPExpr<RHS,OLattice<T> >& s1){  typename UnaryReturn<OLattice<T>, FnSum>::Type_t  d;#if defined(QDP_USE_PROFILING)     typedef OLattice<T> C1;  typedef UnaryNode<FnSum, typename CreateLeaf<QDPExpr<RHS,C1> >::Leaf_t> Tree_t;  typedef typename UnaryReturn<C1,FnSum>::Type_t Container_t;  static QDPProfile_t prof(d, OpAssign(), 			   MakeReturn<Tree_t,Container_t>::make(Tree_t(			     CreateLeaf<QDPExpr<RHS,C1> >::make(s1))));  prof.time -= getClockTime();#endif  // Loop always entered - could unroll  zero_rep(d.elem());  const int vvol = Layout::vol();  for(int i=0; i < vvol; ++i)     d.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 d;}