8 #ifndef EIGEN_MATH_FUNCTIONS_NEON_H 9 #define EIGEN_MATH_FUNCTIONS_NEON_H 15 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f pexp<Packet2f>(
const Packet2f& x)
16 {
return pexp_float(x); }
17 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f pexp<Packet4f>(
const Packet4f& x)
18 {
return pexp_float(x); }
20 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f plog<Packet2f>(
const Packet2f& x)
21 {
return plog_float(x); }
22 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f plog<Packet4f>(
const Packet4f& x)
23 {
return plog_float(x); }
25 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f psin<Packet2f>(
const Packet2f& x)
26 {
return psin_float(x); }
27 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f psin<Packet4f>(
const Packet4f& x)
28 {
return psin_float(x); }
30 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f pcos<Packet2f>(
const Packet2f& x)
31 {
return pcos_float(x); }
32 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f pcos<Packet4f>(
const Packet4f& x)
33 {
return pcos_float(x); }
36 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f ptanh<Packet2f>(
const Packet2f& x)
37 {
return internal::generic_fast_tanh_float(x); }
38 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f ptanh<Packet4f>(
const Packet4f& x)
39 {
return internal::generic_fast_tanh_float(x); }
41 BF16_PACKET_FUNCTION(Packet4f, Packet4bf, psin)
42 BF16_PACKET_FUNCTION(Packet4f, Packet4bf, pcos)
43 BF16_PACKET_FUNCTION(Packet4f, Packet4bf, plog)
44 BF16_PACKET_FUNCTION(Packet4f, Packet4bf, pexp)
45 BF16_PACKET_FUNCTION(Packet4f, Packet4bf, ptanh)
48 EIGEN_STRONG_INLINE Packet4bf pfrexp(
const Packet4bf& a, Packet4bf& exponent) {
50 const Packet4bf out = F32ToBf16(pfrexp<Packet4f>(Bf16ToF32(a), fexponent));
51 exponent = F32ToBf16(fexponent);
56 EIGEN_STRONG_INLINE Packet4bf pldexp(
const Packet4bf& a,
const Packet4bf& exponent) {
57 return F32ToBf16(pldexp<Packet4f>(Bf16ToF32(a), Bf16ToF32(exponent)));
62 #if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG 63 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d pexp<Packet2d>(
const Packet2d& x)
64 {
return pexp_double(x); }
66 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d plog<Packet2d>(
const Packet2d& x)
67 {
return plog_double(x); }
75 #endif // EIGEN_MATH_FUNCTIONS_NEON_H Namespace containing all symbols from the Eigen library.
Definition: Core:141
Definition: Eigen_Colamd.h:50