typename BinaryReturn<PScalar<T1>, PMatrix<T2,N,C>, OpAdjMultiplyAdj>::Type_t  d;
typename BinaryReturn<PMatrix<T1,N,C>, PMatrix<T2,N,C>, OpAdjMultiplyAdj>::Type_t  d;
adjMultiplyAdj(const PScalar<T1>& l, const PMatrix<T2,N,C>& r){  typename BinaryReturn<PScalar<T1>, PMatrix<T2,N,C>, OpAdjMultiplyAdj>::Type_t  d;  for(int i=0; i < N; ++i)    for(int j=0; j < N; ++j)      d.elem(i,j) = adjMultiplyAdj(l.elem(), r.elem(j,i));  return d;}