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