multiplyAdj(const RComplex<T1>& l, const RComplex<T2>& r)
multiplyAdj(const RScalar<T1>& l, const RScalar<T2>& r)
multiplyAdj(const RComplex<T1>& l, const RComplex<T2>& r){  typedef typename BinaryReturn<RComplex<T1>, RComplex<T2>, OpMultiplyAdj>::Type_t  Ret_t;  // The complex conjugate nature has been eaten here leaving simple multiples  // involving transposes - which are probably null//  d.real() = l.real()*transpose(r.real()) + l.imag()*transpose(r.imag());//  d.imag() = l.imag()*transpose(r.real()) - l.real()*transpose(r.imag());//  return d;  /*! NOTE: removed transpose here !!!!!  */  return Ret_t(l.real()*r.real() + l.imag()*r.imag(),	       l.imag()*r.real() - l.real()*r.imag());}