|
Message-ID: <20191001232813.GG16318@brightrain.aerifal.cx> Date: Tue, 1 Oct 2019 19:28:13 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Patch for cacosh On Tue, Oct 01, 2019 at 09:57:17PM +0000, Michael Morrell wrote: > Running the gcc validation suite, I noticed that > gfortran.dg/complex_intrinsic_5.f90 was failing when using MUSL. > > I tracked it down to the cacosh routines not getting the correct > result when the imaginary part of the argument was negative. > > Attached is a patch to fix this. Thanks! > diff --git a/src/complex/cacosh.c b/src/complex/cacosh.c > index 8c68cb01..0b598052 100644 > --- a/src/complex/cacosh.c > +++ b/src/complex/cacosh.c > @@ -4,6 +4,9 @@ > > double complex cacosh(double complex z) > { > + _Bool zineg = cimag(z) < 0; > + I think this fails to give the desired result for negative zero. Should probably be signbit(cimag(z)) or similar. If there's a way to adjust the input to cacos to avoid having to patch up after it returns based on a flag saved before the call, that would make it more efficient I think (no need to spill/reload), but it's not a big deal if not. Also, as a style matter, musl codebase generally doesn't use _Bool; rather just int for flags/boolean values. Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.