NEON/BesselFunctions.h
Go to the documentation of this file.
1 #ifndef EIGEN_NEON_BESSELFUNCTIONS_H
2 #define EIGEN_NEON_BESSELFUNCTIONS_H
3 
4 namespace Eigen {
5 namespace internal {
6 
7 #if EIGEN_HAS_ARM64_FP16_VECTOR_ARITHMETIC
8 
9 #define NEON_HALF_TO_FLOAT_FUNCTIONS(METHOD) \
10 template <> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE \
11 Packet8hf METHOD<Packet8hf>(const Packet8hf& x) { \
12  const Packet4f lo = METHOD<Packet4f>(vcvt_f32_f16(vget_low_f16(x))); \
13  const Packet4f hi = METHOD<Packet4f>(vcvt_f32_f16(vget_high_f16(x))); \
14  return vcombine_f16(vcvt_f16_f32(lo), vcvt_f16_f32(hi)); \
15 } \
16  \
17 template <> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE \
18 Packet4hf METHOD<Packet4hf>(const Packet4hf& x) { \
19  return vcvt_f16_f32(METHOD<Packet4f>(vcvt_f32_f16(x))); \
20 }
21 
22 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i0)
23 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i0e)
24 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i1)
25 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i1e)
26 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_j0)
27 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_j1)
28 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k0)
29 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k0e)
30 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k1)
31 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k1e)
32 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_y0)
33 NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_y1)
34 
35 #undef NEON_HALF_TO_FLOAT_FUNCTIONS
36 #endif
37 
50 
51 } // namespace internal
52 } // namespace Eigen
53 
54 #endif // EIGEN_NEON_BESSELFUNCTIONS_H
Eigen
Namespace containing all symbols from the Eigen library.
Definition: jet.h:637
Eigen::internal::pbessel_j1
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j1(const Packet &x)
Definition: BesselFunctionsPacketMath.h:61
Eigen::internal::Packet4f
__vector float Packet4f
Definition: AltiVec/PacketMath.h:30
Eigen::internal::pbessel_j0
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j0(const Packet &x)
Definition: BesselFunctionsPacketMath.h:53
Eigen::internal::pbessel_i1
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1(const Packet &x)
Definition: BesselFunctionsPacketMath.h:37
Eigen::internal::pbessel_y1
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y1(const Packet &x)
Definition: BesselFunctionsPacketMath.h:77
Eigen::internal::pbessel_i0e
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0e(const Packet &x)
Definition: BesselFunctionsPacketMath.h:29
Eigen::internal::pbessel_k0e
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0e(const Packet &x)
Definition: BesselFunctionsPacketMath.h:93
BF16_PACKET_FUNCTION
#define BF16_PACKET_FUNCTION(PACKET_F, PACKET_BF16, METHOD)
Definition: BFloat16.h:19
Eigen::internal::pbessel_y0
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y0(const Packet &x)
Definition: BesselFunctionsPacketMath.h:69
Eigen::internal::Packet4bf
eigen_packet_wrapper< uint16x4_t, 19 > Packet4bf
Definition: NEON/PacketMath.h:3317
Eigen::internal::pbessel_k1e
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1e(const Packet &x)
Definition: BesselFunctionsPacketMath.h:109
Eigen::internal::pbessel_i1e
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1e(const Packet &x)
Definition: BesselFunctionsPacketMath.h:45
Eigen::internal::pbessel_k0
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0(const Packet &x)
Definition: BesselFunctionsPacketMath.h:85
Eigen::internal::pbessel_k1
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1(const Packet &x)
Definition: BesselFunctionsPacketMath.h:101
internal
Definition: BandTriangularSolver.h:13
Eigen::internal::pbessel_i0
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0(const Packet &x)
Definition: BesselFunctionsPacketMath.h:21


gtsam
Author(s):
autogenerated on Mon Jul 1 2024 03:00:51