return transpose(l.elem()) * transpose(r.elem());
typename BinaryReturn<RComplex<T1>, RComplex<T2>, OpAdjMultiplyAdj>::Type_t  d;    d.real() = transpose(l.real())*transpose(r.real()) - transpose(l.imag())*transpose(r.imag()); d.imag() = -(transpose(l.real())*transpose(r.imag()) + transpose(l.imag())*transpose(r.real())); return d;
adjMultiplyAdj(const RScalar<T1>& l, const RScalar<T2>& r){  return transpose(l.elem()) * transpose(r.elem());}