aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0002-math-fix-128bit-long-double-inverse-trigonometric-fu.patch
blob: ea9d1f19eb8f4eed39190e0f3a4190a953004a07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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