diff options
Diffstat (limited to 'main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch')
-rw-r--r-- | main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch b/main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch new file mode 100644 index 0000000000..ea9d1f19eb --- /dev/null +++ b/main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch @@ -0,0 +1,32 @@ +From 5b5db97f7e80bde2678aed72336a28375e800354 Mon Sep 17 00:00:00 2001 +From: Szabolcs Nagy <nsz@port70.net> +Date: Tue, 23 Aug 2016 21:47:53 +0200 +Subject: [PATCH 2/2] 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.) +--- + 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.10.1 + |