summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2016-08-23 21:47:53 +0200
committerRich Felker <dalias@aerifal.cx>2016-08-30 16:00:38 -0400
commit5b5db97f7e80bde2678aed72336a28375e800354 (patch)
tree2f417fbf83eb6b3394c77fb85a500869c90f2964
parent0a950dcf15bb9f7274c804dca490e9e20e475f3e (diff)
downloadmusl-5b5db97f7e80bde2678aed72336a28375e800354.tar.gz
musl-5b5db97f7e80bde2678aed72336a28375e800354.tar.bz2
musl-5b5db97f7e80bde2678aed72336a28375e800354.tar.xz
musl-5b5db97f7e80bde2678aed72336a28375e800354.zip
math: fix 128bit long double inverse trigonometric functions
there was a copy paste error that could cause large ulp errors in atan2l, atanl, asinl and acosl on aarch64, mips64 and mipsn32. (the implementation is from freebsd fdlibm, but the tail end of the polynomial was wrong. 128 bit long double functions are not yet tested so this went undetected.)
-rw-r--r--src/math/__invtrigl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/math/__invtrigl.c b/src/math/__invtrigl.c
index ef7f4e1b..48f83aaf 100644
--- a/src/math/__invtrigl.c
+++ b/src/math/__invtrigl.c
@@ -57,7 +57,7 @@ long double __invtrigl_R(long double z)
{
long double p, q;
p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*(pS5+z*(pS6+z*(pS7+z*(pS8+z*pS9)))))))));
- q = 1.0+z*(qS1+z*(qS2+z*(qS3+z*(qS4+z*(qS5+z*(pS6+z*(pS7+z*(pS8+z*pS9))))))));
+ q = 1.0+z*(qS1+z*(qS2+z*(qS3+z*(qS4+z*(qS5+z*(qS6+z*(qS7+z*(qS8+z*qS9))))))));
return p/q;
}
#endif