TR-mbed 1.0
Loading...
Searching...
No Matches
BesselFunctions.h
Go to the documentation of this file.
1#ifndef EIGEN_NEON_BESSELFUNCTIONS_H
2#define EIGEN_NEON_BESSELFUNCTIONS_H
3
4namespace Eigen {
5namespace internal {
6
7#if EIGEN_HAS_ARM64_FP16_VECTOR_ARITHMETIC
8
9#define NEON_HALF_TO_FLOAT_FUNCTIONS(METHOD) \
10template <> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE \
11Packet8hf 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 \
17template <> EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE \
18Packet4hf METHOD<Packet4hf>(const Packet4hf& x) { \
19 return vcvt_f16_f32(METHOD<Packet4f>(vcvt_f32_f16(x))); \
20}
21
22NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i0)
23NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i0e)
24NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i1)
25NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_i1e)
26NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_j0)
27NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_j1)
28NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k0)
29NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k0e)
30NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k1)
31NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_k1e)
32NEON_HALF_TO_FLOAT_FUNCTIONS(pbessel_y0)
33NEON_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
#define BF16_PACKET_FUNCTION(PACKET_F, PACKET_BF16, METHOD)
Definition BFloat16.h:19
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0(const Packet &x)
Definition BesselFunctionsPacketMath.h:21
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1e(const Packet &x)
Definition BesselFunctionsPacketMath.h:45
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i0e(const Packet &x)
Definition BesselFunctionsPacketMath.h:29
eigen_packet_wrapper< uint16x4_t, 19 > Packet4bf
Definition PacketMath.h:3317
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1e(const Packet &x)
Definition BesselFunctionsPacketMath.h:109
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j1(const Packet &x)
Definition BesselFunctionsPacketMath.h:61
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0(const Packet &x)
Definition BesselFunctionsPacketMath.h:85
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y0(const Packet &x)
Definition BesselFunctionsPacketMath.h:69
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_i1(const Packet &x)
Definition BesselFunctionsPacketMath.h:37
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k1(const Packet &x)
Definition BesselFunctionsPacketMath.h:101
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_y1(const Packet &x)
Definition BesselFunctionsPacketMath.h:77
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_k0e(const Packet &x)
Definition BesselFunctionsPacketMath.h:93
EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS Packet pbessel_j0(const Packet &x)
Definition BesselFunctionsPacketMath.h:53
__vector float Packet4f
Definition PacketMath.h:30
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
Definition BandTriangularSolver.h:13