From 6ca0b4704367f8804e0373cb439e6e17e5146e4a Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Fri, 15 Nov 2019 14:00:18 +0100 Subject: Issue #1291 - Part 2: Stop using the lib's sqrt() function Use 's functions over fdlibm's for performance reasons. No significant precision loss when doing this. --- modules/fdlibm/src/s_asinh.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'modules/fdlibm/src/s_asinh.cpp') diff --git a/modules/fdlibm/src/s_asinh.cpp b/modules/fdlibm/src/s_asinh.cpp index 400fd89c1..7ecc396bb 100644 --- a/modules/fdlibm/src/s_asinh.cpp +++ b/modules/fdlibm/src/s_asinh.cpp @@ -24,6 +24,7 @@ * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) */ +#include #include #include "math_private.h" @@ -48,10 +49,10 @@ asinh(double x) w = __ieee754_log(fabs(x))+ln2; } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */ t = fabs(x); - w = __ieee754_log(2.0*t+one/(__ieee754_sqrt(x*x+one)+t)); + w = __ieee754_log(2.0*t+one/(std::sqrt(x*x+one)+t)); } else { /* 2.0 > |x| > 2**-28 */ t = x*x; - w =log1p(fabs(x)+t/(one+__ieee754_sqrt(one+t))); + w =log1p(fabs(x)+t/(one+std::sqrt(one+t))); } if(hx>0) return w; else return -w; } -- cgit v1.2.3