cart-elc

Source code for CART-ELC
git clone git://git.laack.co/cart-elc.git
Log | Files | Refs | README | LICENSE

BesselFunctionsHalf.h (2544B)


      1 // This file is part of Eigen, a lightweight C++ template library
      2 // for linear algebra.
      3 //
      4 // This Source Code Form is subject to the terms of the Mozilla
      5 // Public License v. 2.0. If a copy of the MPL was not distributed
      6 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
      7 
      8 #ifndef EIGEN_BESSELFUNCTIONS_HALF_H
      9 #define EIGEN_BESSELFUNCTIONS_HALF_H
     10 
     11 namespace Eigen {
     12 namespace numext {
     13 
     14 #if EIGEN_HAS_C99_MATH
     15 template <>
     16 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_i0(const Eigen::half& x) {
     17   return Eigen::half(Eigen::numext::bessel_i0(static_cast<float>(x)));
     18 }
     19 template <>
     20 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_i0e(const Eigen::half& x) {
     21   return Eigen::half(Eigen::numext::bessel_i0e(static_cast<float>(x)));
     22 }
     23 template <>
     24 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_i1(const Eigen::half& x) {
     25   return Eigen::half(Eigen::numext::bessel_i1(static_cast<float>(x)));
     26 }
     27 template <>
     28 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_i1e(const Eigen::half& x) {
     29   return Eigen::half(Eigen::numext::bessel_i1e(static_cast<float>(x)));
     30 }
     31 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_j0(const Eigen::half& x) {
     32   return Eigen::half(Eigen::numext::bessel_j0(static_cast<float>(x)));
     33 }
     34 template <>
     35 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_j1(const Eigen::half& x) {
     36   return Eigen::half(Eigen::numext::bessel_j1(static_cast<float>(x)));
     37 }
     38 template <>
     39 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_y0(const Eigen::half& x) {
     40   return Eigen::half(Eigen::numext::bessel_y0(static_cast<float>(x)));
     41 }
     42 template <>
     43 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_y1(const Eigen::half& x) {
     44   return Eigen::half(Eigen::numext::bessel_y1(static_cast<float>(x)));
     45 }
     46 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_k0(const Eigen::half& x) {
     47   return Eigen::half(Eigen::numext::bessel_k0(static_cast<float>(x)));
     48 }
     49 template <>
     50 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_k0e(const Eigen::half& x) {
     51   return Eigen::half(Eigen::numext::bessel_k0e(static_cast<float>(x)));
     52 }
     53 template <>
     54 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_k1(const Eigen::half& x) {
     55   return Eigen::half(Eigen::numext::bessel_k1(static_cast<float>(x)));
     56 }
     57 template <>
     58 EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half bessel_k1e(const Eigen::half& x) {
     59   return Eigen::half(Eigen::numext::bessel_k1e(static_cast<float>(x)));
     60 }
     61 #endif
     62 
     63 }  // end namespace numext
     64 }  // end namespace Eigen
     65 
     66 #endif  // EIGEN_BESSELFUNCTIONS_HALF_H