mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH] math: fix 128bit long double inverse trigonometric functions
@ 2016-08-23 19:47 Szabolcs Nagy
  0 siblings, 0 replies; only message in thread
From: Szabolcs Nagy @ 2016-08-23 19:47 UTC (permalink / raw)
  To: musl; +Cc: Roland McGrath

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.)
---

this was found by the change
https://fuchsia.googlesource.com/magenta/+/5fd5aa1b2e567f6b6633fc84ea84443b496f7eb6%5E%21

i tested manually at a few inputs that the patch is sound,
the bug did not cause completely wrong results, the first
couple bits were fine since the leading coefficients were
correct.

 src/math/__invtrigl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/math/__invtrigl.c b/src/math/__invtrigl.c
index ef7f4e1..48f83aa 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
-- 
2.8.1



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2016-08-23 19:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-23 19:47 [PATCH] math: fix 128bit long double inverse trigonometric functions Szabolcs Nagy

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).