11 #ifndef EIGEN_ARCH_CONJ_HELPER_H
12 #define EIGEN_ARCH_CONJ_HELPER_H
14 #define EIGEN_MAKE_CONJ_HELPER_CPLX_REAL(PACKET_CPLX, PACKET_REAL) \
15 template<> struct conj_helper<PACKET_REAL, PACKET_CPLX, false,false> { \
16 EIGEN_STRONG_INLINE PACKET_CPLX pmadd(const PACKET_REAL& x, const PACKET_CPLX& y, const PACKET_CPLX& c) const \
17 { return padd(c, pmul(x,y)); } \
18 EIGEN_STRONG_INLINE PACKET_CPLX pmul(const PACKET_REAL& x, const PACKET_CPLX& y) const \
19 { return PACKET_CPLX(Eigen::internal::pmul<PACKET_REAL>(x, y.v)); } \
22 template<> struct conj_helper<PACKET_CPLX, PACKET_REAL, false,false> { \
23 EIGEN_STRONG_INLINE PACKET_CPLX pmadd(const PACKET_CPLX& x, const PACKET_REAL& y, const PACKET_CPLX& c) const \
24 { return padd(c, pmul(x,y)); } \
25 EIGEN_STRONG_INLINE PACKET_CPLX pmul(const PACKET_CPLX& x, const PACKET_REAL& y) const \
26 { return PACKET_CPLX(Eigen::internal::pmul<PACKET_REAL>(x.v, y)); } \
29 #endif // EIGEN_ARCH_CONJ_HELPER_H