Fix clog10 (-0 +/- 0i) (bug 16362).
authorJoseph Myers <joseph@codesourcery.com>
Fri, 28 Mar 2014 20:53:32 +0000 (20:53 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 28 Mar 2014 20:53:32 +0000 (20:53 +0000)
commit289e0779571a36a8f30ae0408b4902bb7f2ab92e
treeb958fb51b0657f12d0571e4d82c2069a2929570f
parent277ae3f186eb9158219aacf20199cdd02ad133e7
Fix clog10 (-0 +/- 0i) (bug 16362).

This patch fixes the imaginary part of clog10 (-0 +/- 0i), which
should be +/-pi / log(10) by analogy with clog (the functions were
wrongly returning a result with imaginary part +/-pi, same as for
clog, and the tests matched the incorrect result, though both
functions and tests were correct for the similar case of clog10 (-inf
+/- 0i)).  Tested x86_64 and x86.

[BZ #16362]
* math/s_clog10.c (M_PI_LOG10E): New macro.
(__clog10): Use M_PI_LOG10E instead of M_PI when real and
imaginary parts are 0.
* math/s_clog10f.c (M_PI_LOG10Ef): New macro.
(__clog10f): Use M_PI_LOG10Ef instead of M_PI when real and
imaginary parts are 0.
* math/s_clog10l.c (M_PI_LOG10El): New macro.
(__clog10l): Use M_PI_LOG10El instead of M_PIl when real and
imaginary parts are 0.
* math/libm-test.inc (clog10_test_data): Update expected results
for when real and imaginary parts are 0.
ChangeLog
NEWS
math/libm-test.inc
math/s_clog10.c
math/s_clog10f.c
math/s_clog10l.c