aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/SSE/Complex.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2010-07-11 23:57:23 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2010-07-11 23:57:23 +0200
commitf8678272a4244babe25cc92bbb9298ed922330a4 (patch)
tree1c8241a1e3bfe345c53d105c8939966fe7ef83bf /Eigen/src/Core/arch/SSE/Complex.h
parent8e3c4283f52a14b64ce346dcdd9115871a481ab6 (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.h9
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