localInnerProductReal(const PMatrix<T1,N,C>& s1, const PScalar<T2>& s2)
localInnerProductReal(const PScalar<T1>& s1, const PMatrix<T2,N,C>& s2)
localInnerProductReal(const PMatrix<T1,N,C>& s1, const PScalar<T2>& s2){  typename BinaryReturn<PMatrix<T1,N,C>, PScalar<T2>, FnLocalInnerProductReal>::Type_t  d;  d.elem() = localInnerProductReal(s1.elem(0,0), s2.elem());  for(int k=1; k < N; ++k)    d.elem() += localInnerProductReal(s1.elem(k,0), s2.elem(k,k));  return d;}