diff options
-rw-r--r-- | Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h b/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h index d3a2f4ed5..8054e537a 100644 --- a/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +++ b/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h @@ -233,6 +233,10 @@ Packet pexp_float(const Packet _x) return pmax(pldexp(y,m), _x); } +// make it the default path for scalar float +template<> +inline float pexp(const float& a) { return pexp_float(a); } + template <typename Packet> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED @@ -301,6 +305,10 @@ Packet pexp_double(const Packet _x) return pmax(pldexp(x,fx), _x); } +// make it the default path for scalar double +template<> +inline double pexp(const double& a) { return pexp_double(a); } + // The following code is inspired by the following stack-overflow answer: // https://stackoverflow.com/questions/30463616/payne-hanek-algorithm-implementation-in-c/30465751#30465751 // It has been largely optimized: |