outerProduct(const IScalar<T1>& l, const IScalar<T2>& r)
outerProduct(const IScalar<T1>& l, const ILattice<T2,N>& r)
outerProduct(const IScalar<T1>& l, const IScalar<T2>& r){  return outerProduct(l.elem(),r.elem());}