diff --git a/Eigen/src/Core/arch/AVX512/Complex.h b/Eigen/src/Core/arch/AVX512/Complex.h index 6d8ee2bcd..1b08f417c 100644 --- a/Eigen/src/Core/arch/AVX512/Complex.h +++ b/Eigen/src/Core/arch/AVX512/Complex.h @@ -39,7 +39,7 @@ template<> struct packet_traits > : default_packet_traits HasMul = 1, HasDiv = 1, HasNegate = 1, - HasSqrt = 1, + HasSqrt = EIGEN_HAS_AVX512_MATH, HasAbs = 0, HasAbs2 = 0, HasMin = 0, @@ -192,7 +192,7 @@ template<> struct packet_traits > : default_packet_traits HasMul = 1, HasDiv = 1, HasNegate = 1, - HasSqrt = 1, + HasSqrt = EIGEN_HAS_AVX512_MATH, HasAbs = 0, HasAbs2 = 0, HasMin = 0, @@ -368,6 +368,8 @@ ptranspose(PacketBlock& kernel) { kernel.packet[0] = Packet4cd(_mm512_shuffle_f64x2(T0, T2, (shuffle_mask<0,2,0,2>::mask))); // [a0 b0 c0 d0] } +#if EIGEN_HAS_AVX512_MATH + template<> EIGEN_STRONG_INLINE Packet4cd psqrt(const Packet4cd& a) { return psqrt_complex(a); } @@ -376,6 +378,8 @@ template<> EIGEN_STRONG_INLINE Packet8cf psqrt(const Packet8cf& a) { return psqrt_complex(a); } +#endif + } // end namespace internal } // end namespace Eigen