File indexing completed on 2025-01-18 09:57:08
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef EIGEN_BESSELFUNCTIONS_BFLOAT16_H
0009 #define EIGEN_BESSELFUNCTIONS_BFLOAT16_H
0010
0011 namespace Eigen {
0012 namespace numext {
0013
0014 #if EIGEN_HAS_C99_MATH
0015 template <>
0016 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_i0(const Eigen::bfloat16& x) {
0017 return Eigen::bfloat16(Eigen::numext::bessel_i0(static_cast<float>(x)));
0018 }
0019 template <>
0020 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_i0e(const Eigen::bfloat16& x) {
0021 return Eigen::bfloat16(Eigen::numext::bessel_i0e(static_cast<float>(x)));
0022 }
0023 template <>
0024 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_i1(const Eigen::bfloat16& x) {
0025 return Eigen::bfloat16(Eigen::numext::bessel_i1(static_cast<float>(x)));
0026 }
0027 template <>
0028 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_i1e(const Eigen::bfloat16& x) {
0029 return Eigen::bfloat16(Eigen::numext::bessel_i1e(static_cast<float>(x)));
0030 }
0031 template <>
0032 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_j0(const Eigen::bfloat16& x) {
0033 return Eigen::bfloat16(Eigen::numext::bessel_j0(static_cast<float>(x)));
0034 }
0035 template <>
0036 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_j1(const Eigen::bfloat16& x) {
0037 return Eigen::bfloat16(Eigen::numext::bessel_j1(static_cast<float>(x)));
0038 }
0039 template <>
0040 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_y0(const Eigen::bfloat16& x) {
0041 return Eigen::bfloat16(Eigen::numext::bessel_y0(static_cast<float>(x)));
0042 }
0043 template <>
0044 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_y1(const Eigen::bfloat16& x) {
0045 return Eigen::bfloat16(Eigen::numext::bessel_y1(static_cast<float>(x)));
0046 }
0047 template <>
0048 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_k0(const Eigen::bfloat16& x) {
0049 return Eigen::bfloat16(Eigen::numext::bessel_k0(static_cast<float>(x)));
0050 }
0051 template <>
0052 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_k0e(const Eigen::bfloat16& x) {
0053 return Eigen::bfloat16(Eigen::numext::bessel_k0e(static_cast<float>(x)));
0054 }
0055 template <>
0056 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_k1(const Eigen::bfloat16& x) {
0057 return Eigen::bfloat16(Eigen::numext::bessel_k1(static_cast<float>(x)));
0058 }
0059 template <>
0060 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::bfloat16 bessel_k1e(const Eigen::bfloat16& x) {
0061 return Eigen::bfloat16(Eigen::numext::bessel_k1e(static_cast<float>(x)));
0062 }
0063 #endif
0064
0065 }
0066 }
0067
0068 #endif