diff options
author | Antonio Sanchez <cantonios@google.com> | 2020-12-02 14:00:57 -0800 |
---|---|---|
committer | Antonio Sanchez <cantonios@google.com> | 2020-12-04 10:16:29 -0800 |
commit | e2f21465fea76a80966f12a20d0be36597f19b44 (patch) | |
tree | 1ae9b0e3ae489b028902166a343f796d196fde82 /Eigen/src/Core/arch/AVX | |
parent | 305b8bd2777bda99f65791468f305b76021bf579 (diff) |
Special function implementations for half/bfloat16 packets.
Current implementations fail to consider half-float packets, only
half-float scalars. Added specializations for packets on AVX, AVX512 and
NEON. Added tests to `special_packetmath`.
The current `special_functions` tests would fail for half and bfloat16 due to
lack of precision. The NEON tests also fail with precision issues and
due to different handling of `sqrt(inf)`, so special functions bessel, ndtri
have been disabled.
Tested with AVX, AVX512.
Diffstat (limited to 'Eigen/src/Core/arch/AVX')
-rw-r--r-- | Eigen/src/Core/arch/AVX/PacketMath.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Eigen/src/Core/arch/AVX/PacketMath.h b/Eigen/src/Core/arch/AVX/PacketMath.h index 50db0e5c0..f5c18f63f 100644 --- a/Eigen/src/Core/arch/AVX/PacketMath.h +++ b/Eigen/src/Core/arch/AVX/PacketMath.h @@ -147,7 +147,9 @@ struct packet_traits<Eigen::half> : default_packet_traits { HasRound = 1, HasFloor = 1, HasCeil = 1, - HasRint = 1 + HasRint = 1, + HasBessel = 1, + HasNdtri = 1, }; }; @@ -189,7 +191,9 @@ struct packet_traits<bfloat16> : default_packet_traits { HasRound = 1, HasFloor = 1, HasCeil = 1, - HasRint = 1 + HasRint = 1, + HasBessel = 1, + HasNdtri = 1, }; }; #endif |