1 // This file is part of Eigen, a lightweight C++ template library 2 // for linear algebra. 3 // 4 // Copyright (C) 2016 Gael Guennebaud <gael.guennebaud@inria.fr> 5 // 6 // This Source Code Form is subject to the terms of the Mozilla 7 // Public License v. 2.0. If a copy of the MPL was not distributed 8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 10 #ifndef EIGEN_BESSELFUNCTIONS_PACKETMATH_H 11 #define EIGEN_BESSELFUNCTIONS_PACKETMATH_H 12 13 namespace Eigen { 14 15 namespace internal { 16 17 /** \internal \returns the exponentially scaled modified Bessel function of 18 * order zero i0(\a a) (coeff-wise) */ 19 template <typename Packet> 20 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_i0(const Packet & x)21Packet pbessel_i0(const Packet& x) { 22 return numext::bessel_i0(x); 23 } 24 25 /** \internal \returns the exponentially scaled modified Bessel function of 26 * order zero i0e(\a a) (coeff-wise) */ 27 template <typename Packet> 28 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_i0e(const Packet & x)29Packet pbessel_i0e(const Packet& x) { 30 return numext::bessel_i0e(x); 31 } 32 33 /** \internal \returns the exponentially scaled modified Bessel function of 34 * order one i1(\a a) (coeff-wise) */ 35 template <typename Packet> 36 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_i1(const Packet & x)37Packet pbessel_i1(const Packet& x) { 38 return numext::bessel_i1(x); 39 } 40 41 /** \internal \returns the exponentially scaled modified Bessel function of 42 * order one i1e(\a a) (coeff-wise) */ 43 template <typename Packet> 44 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_i1e(const Packet & x)45Packet pbessel_i1e(const Packet& x) { 46 return numext::bessel_i1e(x); 47 } 48 49 /** \internal \returns the exponentially scaled modified Bessel function of 50 * order zero j0(\a a) (coeff-wise) */ 51 template <typename Packet> 52 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_j0(const Packet & x)53Packet pbessel_j0(const Packet& x) { 54 return numext::bessel_j0(x); 55 } 56 57 /** \internal \returns the exponentially scaled modified Bessel function of 58 * order zero j1(\a a) (coeff-wise) */ 59 template <typename Packet> 60 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_j1(const Packet & x)61Packet pbessel_j1(const Packet& x) { 62 return numext::bessel_j1(x); 63 } 64 65 /** \internal \returns the exponentially scaled modified Bessel function of 66 * order one y0(\a a) (coeff-wise) */ 67 template <typename Packet> 68 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_y0(const Packet & x)69Packet pbessel_y0(const Packet& x) { 70 return numext::bessel_y0(x); 71 } 72 73 /** \internal \returns the exponentially scaled modified Bessel function of 74 * order one y1(\a a) (coeff-wise) */ 75 template <typename Packet> 76 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_y1(const Packet & x)77Packet pbessel_y1(const Packet& x) { 78 return numext::bessel_y1(x); 79 } 80 81 /** \internal \returns the exponentially scaled modified Bessel function of 82 * order zero k0(\a a) (coeff-wise) */ 83 template <typename Packet> 84 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_k0(const Packet & x)85Packet pbessel_k0(const Packet& x) { 86 return numext::bessel_k0(x); 87 } 88 89 /** \internal \returns the exponentially scaled modified Bessel function of 90 * order zero k0e(\a a) (coeff-wise) */ 91 template <typename Packet> 92 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_k0e(const Packet & x)93Packet pbessel_k0e(const Packet& x) { 94 return numext::bessel_k0e(x); 95 } 96 97 /** \internal \returns the exponentially scaled modified Bessel function of 98 * order one k1e(\a a) (coeff-wise) */ 99 template <typename Packet> 100 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_k1(const Packet & x)101Packet pbessel_k1(const Packet& x) { 102 return numext::bessel_k1(x); 103 } 104 105 /** \internal \returns the exponentially scaled modified Bessel function of 106 * order one k1e(\a a) (coeff-wise) */ 107 template <typename Packet> 108 EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS pbessel_k1e(const Packet & x)109Packet pbessel_k1e(const Packet& x) { 110 return numext::bessel_k1e(x); 111 } 112 113 } // end namespace internal 114 115 } // end namespace Eigen 116 117 #endif // EIGEN_BESSELFUNCTIONS_PACKETMATH_H 118 119