operator*(const ILattice<T1,N>& l, const ILattice<T2,N>& r)
operator*(const IScalar<T1>& l, const IScalar<T2>& r)
operator*(const ILattice<T1,N>& l, const ILattice<T2,N>& r){  typename BinaryReturn<ILattice<T1,N>, ILattice<T2,N>, OpMultiply>::Type_t  d;  for(int i=0; i < N; ++i)    d.elem(i) = l.elem(i) * r.elem(i);  return d;}