1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

Improve clog, clog10 handling of values with real or imaginary part slightly above 1 (bug 13629).

This commit is contained in:
Joseph Myers
2012-07-31 14:21:19 +00:00
parent 2bc1387273
commit d0419dbfbd
10 changed files with 258 additions and 2 deletions

View File

@ -78,6 +78,13 @@ __clogf (__complex__ float x)
else
__real__ result = __log1pf (absy2) / 2.0f;
}
else if (absx > 1.0f && absx < 2.0f && absy < 1.0f && scale == 0)
{
float d2m1 = (absx - 1.0f) * (absx + 1.0f);
if (absy >= FLT_EPSILON)
d2m1 += absy * absy;
__real__ result = __log1pf (d2m1) / 2.0f;
}
else
{
float d = __ieee754_hypotf (absx, absy);