diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-08-24 15:35:06 +0000 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2018-08-24 15:35:06 +0000 |
commit | 409fe2a85188baaa8a737c1a4fe19fb0df47eb62 (patch) | |
tree | c59c9ba5ca00ed664fedc32b9a6557f4e3e41eb1 /system/musl/complex-math.patch | |
parent | 23e639121014d2e94bcf768313a46a9df3d85d41 (diff) | |
download | packages-409fe2a85188baaa8a737c1a4fe19fb0df47eb62.tar.gz packages-409fe2a85188baaa8a737c1a4fe19fb0df47eb62.tar.bz2 packages-409fe2a85188baaa8a737c1a4fe19fb0df47eb62.tar.xz packages-409fe2a85188baaa8a737c1a4fe19fb0df47eb62.zip |
system/musl: package patch now even with tip of POSIX branch
Diffstat (limited to 'system/musl/complex-math.patch')
-rw-r--r-- | system/musl/complex-math.patch | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/system/musl/complex-math.patch b/system/musl/complex-math.patch deleted file mode 100644 index fff4b59c1..000000000 --- a/system/musl/complex-math.patch +++ /dev/null @@ -1,59 +0,0 @@ -From ae2a01da2e388535da243b3d974aef74a3c06ae0 Mon Sep 17 00:00:00 2001 -From: Rich Felker <dalias@aerifal.cx> -Date: Mon, 9 Apr 2018 12:33:17 -0400 -Subject: fix wrong result in casin and many related complex functions - -the factor of -i noted in the comment at the top of casin.c was -omitted from the actual code, yielding a result rotated 90 degrees and -propagating into errors in other functions defined in terms of casin. - -implement multiplication by -i as a rotation of the real and imaginary -parts of the result, rather than by actual multiplication, since the -latter cannot be optimized without knowledge that the operand is -finite. here, the rotation is the actual intent, anyway. ---- - src/complex/casin.c | 3 ++- - src/complex/casinf.c | 3 ++- - src/complex/casinl.c | 3 ++- - 3 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/src/complex/casin.c b/src/complex/casin.c -index dfdda98..01ed618 100644 ---- a/src/complex/casin.c -+++ b/src/complex/casin.c -@@ -12,5 +12,6 @@ double complex casin(double complex z) - x = creal(z); - y = cimag(z); - w = CMPLX(1.0 - (x - y)*(x + y), -2.0*x*y); -- return clog(CMPLX(-y, x) + csqrt(w)); -+ double complex r = clog(CMPLX(-y, x) + csqrt(w)); -+ return CMPLX(cimag(r), -creal(r)); - } -diff --git a/src/complex/casinf.c b/src/complex/casinf.c -index 93f0e33..4fcb76f 100644 ---- a/src/complex/casinf.c -+++ b/src/complex/casinf.c -@@ -10,5 +10,6 @@ float complex casinf(float complex z) - x = crealf(z); - y = cimagf(z); - w = CMPLXF(1.0 - (x - y)*(x + y), -2.0*x*y); -- return clogf(CMPLXF(-y, x) + csqrtf(w)); -+ float complex r = clogf(CMPLXF(-y, x) + csqrtf(w)); -+ return CMPLXF(cimagf(r), -crealf(r)); - } -diff --git a/src/complex/casinl.c b/src/complex/casinl.c -index 0916c60..3b7ceba 100644 ---- a/src/complex/casinl.c -+++ b/src/complex/casinl.c -@@ -15,6 +15,7 @@ long double complex casinl(long double complex z) - x = creall(z); - y = cimagl(z); - w = CMPLXL(1.0 - (x - y)*(x + y), -2.0*x*y); -- return clogl(CMPLXL(-y, x) + csqrtl(w)); -+ long double complex r = clogl(CMPLXL(-y, x) + csqrtl(w)); -+ return CMPLXL(cimagl(r), -creall(r)); - } - #endif --- -cgit v0.11.2 - |