Fix j1, jn missing underflows (bug 16559).
commit63dbe5f32238858c7b953b867ed0588c7808dd4f
authorJoseph Myers <joseph@codesourcery.com>
Mon, 29 Jun 2015 16:52:16 +0000 (29 16:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 29 Jun 2015 16:52:16 +0000 (29 16:52 +0000)
tree05aff3104a86894353a10f5ddc0c32deef550977
parent31545c23277cd54a1edd41c85d8255fb589158e3
Fix j1, jn missing underflows (bug 16559).

Similar to various other bugs in this area, j1 and jn implementations
can fail to raise the underflow exception when the internal
computation is exact although the actual function is inexact.  This
patch forces the exception in a similar way to other such fixes.  (The
ldbl-128 / ldbl-128ibm j1l implementation is different and doesn't
need a change for this until spurious underflows in it are fixed.)

Tested for x86_64, x86, mips64 and powerpc.

[BZ #16559]
* sysdeps/ieee754/dbl-64/e_j1.c: Include <float.h>.
(__ieee754_j1): Force underflow exception for small results.
* sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Likewise.
* sysdeps/ieee754/flt-32/e_j1f.c: Include <float.h>.
(__ieee754_j1f): Force underflow exception for small results.
* sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_jnf): Likewise.
* sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
* sysdeps/ieee754/ldbl-96/e_j1l.c: Include <float.h>.
(__ieee754_j1l): Force underflow exception for small results.
* sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
* math/auto-libm-test-in: Add more tests of j1 and jn.
* math/auto-libm-test-out: Regenerated.
12 files changed:
ChangeLog
NEWS
math/auto-libm-test-in
math/auto-libm-test-out
sysdeps/ieee754/dbl-64/e_j1.c
sysdeps/ieee754/dbl-64/e_jn.c
sysdeps/ieee754/flt-32/e_j1f.c
sysdeps/ieee754/flt-32/e_jnf.c
sysdeps/ieee754/ldbl-128/e_jnl.c
sysdeps/ieee754/ldbl-128ibm/e_jnl.c
sysdeps/ieee754/ldbl-96/e_j1l.c
sysdeps/ieee754/ldbl-96/e_jnl.c