diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-11-15 14:00:18 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-11-15 14:00:18 +0100 |
commit | 6ca0b4704367f8804e0373cb439e6e17e5146e4a (patch) | |
tree | 31ce5042bb575dd1afd6d309467c0c0d36e18914 /modules/fdlibm/src/e_acos.cpp | |
parent | 85c60f94fb584ecab49743ab533e56f0f9981ecc (diff) | |
download | UXP-6ca0b4704367f8804e0373cb439e6e17e5146e4a.tar UXP-6ca0b4704367f8804e0373cb439e6e17e5146e4a.tar.gz UXP-6ca0b4704367f8804e0373cb439e6e17e5146e4a.tar.lz UXP-6ca0b4704367f8804e0373cb439e6e17e5146e4a.tar.xz UXP-6ca0b4704367f8804e0373cb439e6e17e5146e4a.zip |
Issue #1291 - Part 2: Stop using the lib's sqrt() function
Use <cmath>'s functions over fdlibm's for performance reasons.
No significant precision loss when doing this.
Diffstat (limited to 'modules/fdlibm/src/e_acos.cpp')
-rw-r--r-- | modules/fdlibm/src/e_acos.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/modules/fdlibm/src/e_acos.cpp b/modules/fdlibm/src/e_acos.cpp index 12be296cb..4f497b3b3 100644 --- a/modules/fdlibm/src/e_acos.cpp +++ b/modules/fdlibm/src/e_acos.cpp @@ -38,6 +38,7 @@ * Function needed: sqrt */ +#include <cmath> #include <float.h> #include "math_private.h" @@ -87,13 +88,13 @@ __ieee754_acos(double x) z = (one+x)*0.5; p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); - s = sqrt(z); + s = std::sqrt(z); r = p/q; w = r*s-pio2_lo; return pi - 2.0*(s+w); } else { /* x > 0.5 */ z = (one-x)*0.5; - s = sqrt(z); + s = std::sqrt(z); df = s; SET_LOW_WORD(df,0); c = (z-df*df)/(s+df); |