diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-09-19 12:48:30 -0700 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-09-19 12:48:30 -0700 |
commit | 6de5ed08d88239080b9381f60f75e5abea731d75 (patch) | |
tree | af9fcc1e95e23d7faece933d8c7a16a9778147a7 /Eigen/src/Core/arch/AltiVec/PacketMath.h | |
parent | e02d42963750531490a69fc87926b60f32180456 (diff) |
Add generic PacketMath implementation of the Error Function (erf).
Diffstat (limited to 'Eigen/src/Core/arch/AltiVec/PacketMath.h')
-rwxr-xr-x | Eigen/src/Core/arch/AltiVec/PacketMath.h | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/Eigen/src/Core/arch/AltiVec/PacketMath.h b/Eigen/src/Core/arch/AltiVec/PacketMath.h index 7ee290a29..2bba3a798 100755 --- a/Eigen/src/Core/arch/AltiVec/PacketMath.h +++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h @@ -120,27 +120,27 @@ static Packet16uc p16uc_COMPLEX32_REV2 = vec_sld(p16uc_PSET64_HI, p16uc_PSET64_L #define EIGEN_PPC_PREFETCH(ADDR) asm( " dcbt [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" ); #endif -template<> struct packet_traits<float> : default_packet_traits -{ +template <> +struct packet_traits<float> : default_packet_traits { typedef Packet4f type; typedef Packet4f half; enum { Vectorizable = 1, AlignedOnScalar = 1, - size=4, + size = 4, HasHalfPacket = 1, - HasAdd = 1, - HasSub = 1, - HasMul = 1, - HasDiv = 1, - HasMin = 1, - HasMax = 1, - HasAbs = 1, - HasSin = EIGEN_FAST_MATH, - HasCos = EIGEN_FAST_MATH, - HasLog = 1, - HasExp = 1, + HasAdd = 1, + HasSub = 1, + HasMul = 1, + HasDiv = 1, + HasMin = 1, + HasMax = 1, + HasAbs = 1, + HasSin = EIGEN_FAST_MATH, + HasCos = EIGEN_FAST_MATH, + HasLog = 1, + HasExp = 1, #ifdef __VSX__ HasSqrt = 1, #if !EIGEN_COMP_CLANG @@ -151,6 +151,8 @@ template<> struct packet_traits<float> : default_packet_traits #else HasSqrt = 0, HasRsqrt = 0, + HasTanh = EIGEN_FAST_MATH, + HasErf = EIGEN_FAST_MATH, #endif HasRound = 1, HasFloor = 1, @@ -159,8 +161,8 @@ template<> struct packet_traits<float> : default_packet_traits HasBlend = 1 }; }; -template<> struct packet_traits<int> : default_packet_traits -{ +template <> +struct packet_traits<int> : default_packet_traits { typedef Packet4i type; typedef Packet4i half; enum { @@ -177,7 +179,6 @@ template<> struct packet_traits<int> : default_packet_traits }; }; - template<> struct unpacket_traits<Packet4f> { typedef float type; |