diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-03-27 14:47:00 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-03-27 14:47:00 +0100 |
commit | 052aedd3943717500f47d1f034e2b3ac072cfe36 (patch) | |
tree | 71a7613b021a2592c249a08ee101a14ca9880b85 /Eigen/src/Core/arch/SSE/Complex.h | |
parent | a419cea4a0ff545f3221020119d5eb6ab4cd3e48 (diff) |
Implement pcplflip, palign, predux and the likes from AVC/complexes
Diffstat (limited to 'Eigen/src/Core/arch/SSE/Complex.h')
-rw-r--r-- | Eigen/src/Core/arch/SSE/Complex.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/SSE/Complex.h b/Eigen/src/Core/arch/SSE/Complex.h index 2dce66819..b92919b75 100644 --- a/Eigen/src/Core/arch/SSE/Complex.h +++ b/Eigen/src/Core/arch/SSE/Complex.h @@ -22,6 +22,9 @@ struct Packet2cf __m128 v; }; +// Use the packet_traits defined in AVX/PacketMath.h instead if we're going +// to leverage AVX instructions. +#ifndef EIGEN_VECTORIZE_AVX template<> struct packet_traits<std::complex<float> > : default_packet_traits { typedef Packet2cf type; @@ -42,6 +45,7 @@ template<> struct packet_traits<std::complex<float> > : default_packet_traits HasSetLinear = 0 }; }; +#endif template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; }; @@ -248,6 +252,9 @@ struct Packet1cd __m128d v; }; +// Use the packet_traits defined in AVX/PacketMath.h instead if we're going +// to leverage AVX instructions. +#ifndef EIGEN_VECTORIZE_AVX template<> struct packet_traits<std::complex<double> > : default_packet_traits { typedef Packet1cd type; @@ -268,6 +275,7 @@ template<> struct packet_traits<std::complex<double> > : default_packet_traits HasSetLinear = 0 }; }; +#endif template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1}; }; |