diff options
author | Gael Guennebaud <g.gael@free.fr> | 2010-07-11 23:57:23 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2010-07-11 23:57:23 +0200 |
commit | f8678272a4244babe25cc92bbb9298ed922330a4 (patch) | |
tree | 1c8241a1e3bfe345c53d105c8939966fe7ef83bf /Eigen/src/Core/arch/SSE/Complex.h | |
parent | 8e3c4283f52a14b64ce346dcdd9115871a481ab6 (diff) |
mixing types step 3:
- improve support of colmajor by vector and matrix - matrix
- now all configurations are well handled, but the perf are not always very good
Diffstat (limited to 'Eigen/src/Core/arch/SSE/Complex.h')
-rw-r--r-- | Eigen/src/Core/arch/SSE/Complex.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h index 6c72293fc..d1880294c 100644 --- a/Eigen/src/Core/arch/SSE/Complex.h +++ b/Eigen/src/Core/arch/SSE/Complex.h @@ -207,6 +207,15 @@ template<> struct ei_conj_helper<Packet4f, Packet2cf, false,false> { return Packet2cf(ei_pmul(x, y.v)); } }; +template<> struct ei_conj_helper<Packet2cf, Packet4f, false,false> +{ + EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const + { return ei_padd(c, pmul(x,y)); } + + EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const + { return Packet2cf(ei_pmul(x.v, y)); } +}; + template<> EIGEN_STRONG_INLINE Packet2cf ei_pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { // TODO optimize it for SSE3 and 4 |