This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
calling sincosf on subnormal argument is wrong
- From: Dmitrieva Liubov <liubov dot dmitrieva at gmail dot com>
- To: libc-alpha at sourceware dot org
- Date: Thu, 16 Aug 2012 15:43:05 +0400
- Subject: calling sincosf on subnormal argument is wrong
Hello all.
An attempt to run "make check" with new optimized SSE Sincos we are
testing now failed due to an issue but not on sincosf side.
The reason of fails is that the ccos, ccosh, cexp, csin, csinh
functions must not raise Underflow, because result is not subnormal.
But all they call to sincosf(x) on x=0x1p-149, that now raises
Underflow (new sincosf is correct here).
To fix the problems, the mentioned functions (ccos,etc) must not call
sincosf on subnormal argument.
testing float (without inline functions)
>From test-float.out:
Failure: Real part of: ccos (0x1p-149 + 180 i) == inf -
1.043535896672617552965983803453927655332e33 i: Exception "Underflow"
set
Failure: Real part of: ccosh (180 + 0x1p-149 i) == inf +
1.043535896672617552965983803453927655332e33 i: Exception "Underflow"
set
Failure: Real part of: cexp (180 + 0x1p-149 i) == inf +
2.087071793345235105931967606907855310664e33 i: Exception "Underflow"
set
Failure: Real part of: csin (0x1p-149 + 180 i) ==
1.043535896672617552965983803453927655332e33 + inf i: Exception
"Underflow" set
Failure: Real part of: csinh (180 + 0x1p-149 i) == inf +
1.043535896672617552965983803453927655332e33 i: Exception "Underflow"
set
--
Liubov Dmitrieva
Intel Corporation