blob: 943d10f6afcd22f80d18dbd1c7aed196073968bf [file] [log] [blame]
Austin Schuhc55b0172022-02-20 17:52:35 -08001// 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
13namespace Eigen {
14
15namespace internal {
16
17/** \internal \returns the exponentially scaled modified Bessel function of
18 * order zero i0(\a a) (coeff-wise) */
19template <typename Packet>
20EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
27template <typename Packet>
28EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
35template <typename Packet>
36EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
43template <typename Packet>
44EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
51template <typename Packet>
52EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
59template <typename Packet>
60EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
67template <typename Packet>
68EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
75template <typename Packet>
76EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
83template <typename Packet>
84EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
91template <typename Packet>
92EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
99template <typename Packet>
100EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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) */
107template <typename Packet>
108EIGEN_DEVICE_FUNC EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
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