File indexing completed on 2025-04-20 09:04:52
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef EIGEN_MATH_FUNCTIONS_ALTIVEC_H
0013 #define EIGEN_MATH_FUNCTIONS_ALTIVEC_H
0014
0015 namespace RivetEigen {
0016
0017 namespace internal {
0018
0019 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0020 Packet4f plog<Packet4f>(const Packet4f& _x)
0021 {
0022 return plog_float(_x);
0023 }
0024
0025 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0026 Packet4f pexp<Packet4f>(const Packet4f& _x)
0027 {
0028 return pexp_float(_x);
0029 }
0030
0031 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0032 Packet4f psin<Packet4f>(const Packet4f& _x)
0033 {
0034 return psin_float(_x);
0035 }
0036
0037 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0038 Packet4f pcos<Packet4f>(const Packet4f& _x)
0039 {
0040 return pcos_float(_x);
0041 }
0042
0043 #ifndef EIGEN_COMP_CLANG
0044 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0045 Packet4f prsqrt<Packet4f>(const Packet4f& x)
0046 {
0047 return vec_rsqrt(x);
0048 }
0049 #endif
0050
0051 #ifdef __VSX__
0052 #ifndef EIGEN_COMP_CLANG
0053 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0054 Packet2d prsqrt<Packet2d>(const Packet2d& x)
0055 {
0056 return vec_rsqrt(x);
0057 }
0058 #endif
0059
0060 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0061 Packet4f psqrt<Packet4f>(const Packet4f& x)
0062 {
0063 return vec_sqrt(x);
0064 }
0065
0066 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0067 Packet2d psqrt<Packet2d>(const Packet2d& x)
0068 {
0069 return vec_sqrt(x);
0070 }
0071
0072 template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
0073 Packet2d pexp<Packet2d>(const Packet2d& _x)
0074 {
0075 return pexp_double(_x);
0076 }
0077 #endif
0078
0079
0080 template <>
0081 EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f
0082 ptanh<Packet4f>(const Packet4f& x) {
0083 return internal::generic_fast_tanh_float(x);
0084 }
0085
0086 }
0087
0088 }
0089
0090 #endif