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