cart-elc

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

BesselFunctionsPacketMath.h (4006B)


      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
     21 Packet 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
     29 Packet 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
     37 Packet 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
     45 Packet 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
     53 Packet 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
     61 Packet 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
     69 Packet 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
     77 Packet 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
     85 Packet 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
     93 Packet 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
    101 Packet 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
    109 Packet 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