1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2020, Arm Limited and Contributors
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_MATH_FUNCTIONS_SVE_H
11 #define EIGEN_MATH_FUNCTIONS_SVE_H
12 
13 namespace Eigen {
14 namespace internal {
15 
16 template <>
17 EIGEN_STRONG_INLINE EIGEN_UNUSED PacketXf pexp<PacketXf>(const PacketXf& x) {
18   return pexp_float(x);
19 }
20 
21 template <>
22 EIGEN_STRONG_INLINE EIGEN_UNUSED PacketXf plog<PacketXf>(const PacketXf& x) {
23   return plog_float(x);
24 }
25 
26 template <>
27 EIGEN_STRONG_INLINE EIGEN_UNUSED PacketXf psin<PacketXf>(const PacketXf& x) {
28   return psin_float(x);
29 }
30 
31 template <>
32 EIGEN_STRONG_INLINE EIGEN_UNUSED PacketXf pcos<PacketXf>(const PacketXf& x) {
33   return pcos_float(x);
34 }
35 
36 // Hyperbolic Tangent function.
37 template <>
38 EIGEN_STRONG_INLINE EIGEN_UNUSED PacketXf ptanh<PacketXf>(const PacketXf& x) {
39   return internal::generic_fast_tanh_float(x);
40 }
41 }  // end namespace internal
42 }  // end namespace Eigen
43 
44 #endif  // EIGEN_MATH_FUNCTIONS_SVE_H
45