d.elem() = localInnerProduct(s1.elem(), s2.elem());
d.real() = localInnerProduct(l.real(),r.real()) + localInnerProduct(l.imag(),r.imag()); d.imag() = localInnerProduct(l.real(),r.imag()) - localInnerProduct(l.imag(),r.real());
localInnerProduct(const RScalar<T1>& s1, const RScalar<T2>& s2){  typename BinaryReturn<RScalar<T1>, RScalar<T2>, FnLocalInnerProduct>::Type_t  d;  d.elem() = localInnerProduct(s1.elem(), s2.elem());  return d;}