return Ret_t(l.real()*r.real() + l.imag()*r.imag(), l.real()*r.imag() - l.imag()*r.real());
return l.elem() * r.elem();
adjMultiply(const RComplex<T1>& l, const RComplex<T2>& r){  typedef typename BinaryReturn<RComplex<T1>, RComplex<T2>, OpAdjMultiply>::Type_t  Ret_t;  // The complex conjugate nature has been eaten here leaving simple multiples  // involving transposes - which are probably null  //  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;  /*! NOTE: removed transpose here !!!!!  */  return Ret_t(l.real()*r.real() + l.imag()*r.imag(),	       l.real()*r.imag() - l.imag()*r.real());}