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