traceMultiply(const PScalar<T1>& l, const PMatrix<T2,N,C>& r)
traceMultiply(const PMatrix<T1,N,C>& l, const PMatrix<T2,N,C>& r)
traceMultiply(const PScalar<T1>& l, const PMatrix<T2,N,C>& r){  typename BinaryReturn<PScalar<T1>, PMatrix<T2,N,C>, FnTraceMultiply>::Type_t  d;  d.elem() = traceMultiply(l.elem(), r.elem(0,0));  for(int k=1; k < N; ++k)    d.elem() += traceMultiply(l.elem(), r.elem(k,k));  return d;}