diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2015-02-25 11:13:41 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2015-02-25 11:13:41 +0000 |
| commit | 137cef7d433407bd2ded8bcc5bea70e5858df47a (patch) | |
| tree | deb0a6e04c5e7220d1e4eebcf59ab9d792a8eca6 | |
| parent | cb43bb0d68f001fc3d6e054d712ab8794b5fd1de (diff) | |
| download | glibc-137cef7d433407bd2ded8bcc5bea70e5858df47a.tar.xz glibc-137cef7d433407bd2ded8bcc5bea70e5858df47a.zip | |
Fix ldbl-128ibm asinhl inaccuracy (bug 18020).
The ldbl-128ibm implementation of asinhl uses cut-offs of 0x1p28 and
0x1p-29 to determine when to use simpler formulas that avoid possible
overflow / underflow. Both those cut-offs are inappropriate for this
format, resulting in large errors. This patch changes the code to use
more appropriate cut-offs of 0x1p56 and 0x1p-56, adding tests around
the cut-offs for various floating-point formats.
Tested for powerpc. Also tested for x86_64 and x86 and updated ulps.
[BZ #18020]
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use 2**56 and
2**-56 not 2**28 and 2**-29 as thresholds for simpler formulas.
* math/auto-libm-test-in: Add more tests of asinh.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | math/auto-libm-test-in | 61 | ||||
| -rw-r--r-- | math/auto-libm-test-out | 1685 | ||||
| -rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 8 | ||||
| -rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/s_asinhl.c | 8 | ||||
| -rw-r--r-- | sysdeps/x86_64/fpu/libm-test-ulps | 27 |
7 files changed, 1779 insertions, 22 deletions
@@ -1,3 +1,13 @@ +2015-02-25 Joseph Myers <joseph@codesourcery.com> + + [BZ #18020] + * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use 2**56 and + 2**-56 not 2**28 and 2**-29 as thresholds for simpler formulas. + * math/auto-libm-test-in: Add more tests of asinh. + * math/auto-libm-test-out: Regenerated. + * sysdeps/i386/fpu/libm-test-ulps: Update. + * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. + 2015-02-25 Cong Wang <xiyou.wangcong@gmail.com> [BZ #15850] @@ -12,7 +12,7 @@ Version 2.22 4719, 14841, 13064, 14094, 15319, 15467, 15790, 16560, 16783, 17269, 17523, 17569, 17588, 17792, 17836, 17912, 17916, 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17998, 17999, - 18019. + 18019, 18020. * Character encoding and ctype tables were updated to Unicode 7.0.0, using new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index a4bd972c80..df51c26ff9 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -104,8 +104,69 @@ asinh 1 asinh 10 asinh 100 asinh 1e6 +asinh 0x1p8 +asinh 0x1p9 +asinh 0x1p10 +asinh 0x1p11 +asinh 0x1p12 +asinh 0x1p13 +asinh 0x1p24 +asinh 0x1p25 +asinh 0x1p26 +asinh 0x1p27 +asinh 0x1p28 +asinh 0x1p29 +asinh 0x1p30 +asinh 0x1p31 +asinh 0x1p32 +asinh 0x1p33 +asinh 0x1p48 +asinh 0x1p49 +asinh 0x1p50 +asinh 0x1p51 +asinh 0x1p52 +asinh 0x1p53 +asinh 0x1p54 +asinh 0x1p55 +asinh 0x1p56 +asinh 0x1p57 +asinh 0x1p58 +asinh 0x1p59 asinh 0x1p100 +asinh 0x1p500 +asinh 0x1p5000 +asinh 0x1p-8 +asinh 0x1p-9 +asinh 0x1p-10 +asinh 0x1p-11 +asinh 0x1p-12 +asinh 0x1p-13 +asinh 0x1p-24 +asinh 0x1p-25 +asinh 0x1p-26 +asinh 0x1p-27 +asinh 0x1p-28 +asinh 0x1p-29 +asinh 0x1p-30 +asinh 0x1p-31 +asinh 0x1p-32 +asinh 0x1p-33 +asinh 0x1p-48 +asinh 0x1p-49 +asinh 0x1p-50 +asinh 0x1p-51 +asinh 0x1p-52 +asinh 0x1p-53 +asinh 0x1p-54 +asinh 0x1p-55 +asinh 0x1p-56 +asinh 0x1p-57 +asinh 0x1p-58 +asinh 0x1p-59 +asinh 0x1p-100 # Bug 16350: underflow exception may be missing. +asinh 0x1p-500 missing-underflow +asinh 0x1p-5000 missing-underflow asinh min missing-underflow asinh -min missing-underflow asinh min_subnorm missing-underflow diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index c8bc6a8b3f..83170d9efc 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -3346,6 +3346,706 @@ asinh 1e6 = asinh tonearest ldbl-128ibm 0xf.424p+16L : 0xe.823764bfd1e5fa37c6bf52ed08p+0L : inexact-ok = asinh towardzero ldbl-128ibm 0xf.424p+16L : 0xe.823764bfd1e5fa37c6bf52ed08p+0L : inexact-ok = asinh upward ldbl-128ibm 0xf.424p+16L : 0xe.823764bfd1e5fa37c6bf52ed0cp+0L : inexact-ok +asinh 0x1p8 += asinh downward flt-32 0x1p+8f : 0x6.3d031p+0f : inexact-ok += asinh tonearest flt-32 0x1p+8f : 0x6.3d0318p+0f : inexact-ok += asinh towardzero flt-32 0x1p+8f : 0x6.3d031p+0f : inexact-ok += asinh upward flt-32 0x1p+8f : 0x6.3d0318p+0f : inexact-ok += asinh downward dbl-64 0x1p+8 : 0x6.3d0317b6484b4p+0 : inexact-ok += asinh tonearest dbl-64 0x1p+8 : 0x6.3d0317b6484b4p+0 : inexact-ok += asinh towardzero dbl-64 0x1p+8 : 0x6.3d0317b6484b4p+0 : inexact-ok += asinh upward dbl-64 0x1p+8 : 0x6.3d0317b6484b8p+0 : inexact-ok += asinh downward ldbl-96-intel 0x1p+8L : 0x6.3d0317b6484b5458p+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x1p+8L : 0x6.3d0317b6484b546p+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x1p+8L : 0x6.3d0317b6484b5458p+0L : inexact-ok += asinh upward ldbl-96-intel 0x1p+8L : 0x6.3d0317b6484b546p+0L : inexact-ok += asinh downward ldbl-96-m68k 0x1p+8L : 0x6.3d0317b6484b5458p+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x1p+8L : 0x6.3d0317b6484b546p+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x1p+8L : 0x6.3d0317b6484b5458p+0L : inexact-ok += asinh upward ldbl-96-m68k 0x1p+8L : 0x6.3d0317b6484b546p+0L : inexact-ok += asinh downward ldbl-128 0x1p+8L : 0x6.3d0317b6484b545f6596abfa40dcp+0L : inexact-ok += asinh tonearest ldbl-128 0x1p+8L : 0x6.3d0317b6484b545f6596abfa40dcp+0L : inexact-ok += asinh towardzero ldbl-128 0x1p+8L : 0x6.3d0317b6484b545f6596abfa40dcp+0L : inexact-ok += asinh upward ldbl-128 0x1p+8L : 0x6.3d0317b6484b545f6596abfa40ep+0L : inexact-ok += asinh downward ldbl-128ibm 0x1p+8L : 0x6.3d0317b6484b545f6596abfa4p+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x1p+8L : 0x6.3d0317b6484b545f6596abfa4p+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x1p+8L : 0x6.3d0317b6484b545f6596abfa4p+0L : inexact-ok += asinh upward ldbl-128ibm 0x1p+8L : 0x6.3d0317b6484b545f6596abfa42p+0L : inexact-ok +asinh 0x1p9 += asinh downward flt-32 0x2p+8f : 0x6.ee74f8p+0f : inexact-ok += asinh tonearest flt-32 0x2p+8f : 0x6.ee75p+0f : inexact-ok += asinh towardzero flt-32 0x2p+8f : 0x6.ee74f8p+0f : inexact-ok += asinh upward flt-32 0x2p+8f : 0x6.ee75p+0f : inexact-ok += asinh downward dbl-64 0x2p+8 : 0x6.ee74ffae309acp+0 : inexact-ok += asinh tonearest dbl-64 0x2p+8 : 0x6.ee74ffae309acp+0 : inexact-ok += asinh towardzero dbl-64 0x2p+8 : 0x6.ee74ffae309acp+0 : inexact-ok += asinh upward dbl-64 0x2p+8 : 0x6.ee74ffae309bp+0 : inexact-ok += asinh downward ldbl-96-intel 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh upward ldbl-96-intel 0x2p+8L : 0x6.ee74ffae309ac0fp+0L : inexact-ok += asinh downward ldbl-96-m68k 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x2p+8L : 0x6.ee74ffae309ac0e8p+0L : inexact-ok += asinh upward ldbl-96-m68k 0x2p+8L : 0x6.ee74ffae309ac0fp+0L : inexact-ok += asinh downward ldbl-128 0x2p+8L : 0x6.ee74ffae309ac0eb383199471004p+0L : inexact-ok += asinh tonearest ldbl-128 0x2p+8L : 0x6.ee74ffae309ac0eb383199471004p+0L : inexact-ok += asinh towardzero ldbl-128 0x2p+8L : 0x6.ee74ffae309ac0eb383199471004p+0L : inexact-ok += asinh upward ldbl-128 0x2p+8L : 0x6.ee74ffae309ac0eb383199471008p+0L : inexact-ok += asinh downward ldbl-128ibm 0x2p+8L : 0x6.ee74ffae309ac0eb383199471p+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x2p+8L : 0x6.ee74ffae309ac0eb383199471p+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x2p+8L : 0x6.ee74ffae309ac0eb383199471p+0L : inexact-ok += asinh upward ldbl-128ibm 0x2p+8L : 0x6.ee74ffae309ac0eb3831994712p+0L : inexact-ok +asinh 0x1p10 += asinh downward flt-32 0x4p+8f : 0x7.9fe708p+0f : inexact-ok += asinh tonearest flt-32 0x4p+8f : 0x7.9fe708p+0f : inexact-ok += asinh towardzero flt-32 0x4p+8f : 0x7.9fe708p+0f : inexact-ok += asinh upward flt-32 0x4p+8f : 0x7.9fe71p+0f : inexact-ok += asinh downward dbl-64 0x4p+8 : 0x7.9fe70ba603d2p+0 : inexact-ok += asinh tonearest dbl-64 0x4p+8 : 0x7.9fe70ba603d24p+0 : inexact-ok += asinh towardzero dbl-64 0x4p+8 : 0x7.9fe70ba603d2p+0 : inexact-ok += asinh upward dbl-64 0x4p+8 : 0x7.9fe70ba603d24p+0 : inexact-ok += asinh downward ldbl-96-intel 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh upward ldbl-96-intel 0x4p+8L : 0x7.9fe70ba603d23a68p+0L : inexact-ok += asinh downward ldbl-96-m68k 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x4p+8L : 0x7.9fe70ba603d23a6p+0L : inexact-ok += asinh upward ldbl-96-m68k 0x4p+8L : 0x7.9fe70ba603d23a68p+0L : inexact-ok += asinh downward ldbl-128 0x4p+8L : 0x7.9fe70ba603d23a62821e041d8128p+0L : inexact-ok += asinh tonearest ldbl-128 0x4p+8L : 0x7.9fe70ba603d23a62821e041d812cp+0L : inexact-ok += asinh towardzero ldbl-128 0x4p+8L : 0x7.9fe70ba603d23a62821e041d8128p+0L : inexact-ok += asinh upward ldbl-128 0x4p+8L : 0x7.9fe70ba603d23a62821e041d812cp+0L : inexact-ok += asinh downward ldbl-128ibm 0x4p+8L : 0x7.9fe70ba603d23a62821e041d8p+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x4p+8L : 0x7.9fe70ba603d23a62821e041d82p+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x4p+8L : 0x7.9fe70ba603d23a62821e041d8p+0L : inexact-ok += asinh upward ldbl-128ibm 0x4p+8L : 0x7.9fe70ba603d23a62821e041d82p+0L : inexact-ok +asinh 0x1p11 += asinh downward flt-32 0x8p+8f : 0x8.51592p+0f : inexact-ok += asinh tonearest flt-32 0x8p+8f : 0x8.51592p+0f : inexact-ok += asinh towardzero flt-32 0x8p+8f : 0x8.51592p+0f : inexact-ok += asinh upward flt-32 0x8p+8f : 0x8.51593p+0f : inexact-ok += asinh downward dbl-64 0x8p+8 : 0x8.5159209dd5b8p+0 : inexact-ok += asinh tonearest dbl-64 0x8p+8 : 0x8.5159209dd5b8p+0 : inexact-ok += asinh towardzero dbl-64 0x8p+8 : 0x8.5159209dd5b8p+0 : inexact-ok += asinh upward dbl-64 0x8p+8 : 0x8.5159209dd5b88p+0 : inexact-ok += asinh downward ldbl-96-intel 0x8p+8L : 0x8.5159209dd5b834p+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x8p+8L : 0x8.5159209dd5b8341p+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x8p+8L : 0x8.5159209dd5b834p+0L : inexact-ok += asinh upward ldbl-96-intel 0x8p+8L : 0x8.5159209dd5b8341p+0L : inexact-ok += asinh downward ldbl-96-m68k 0x8p+8L : 0x8.5159209dd5b834p+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x8p+8L : 0x8.5159209dd5b8341p+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x8p+8L : 0x8.5159209dd5b834p+0L : inexact-ok += asinh upward ldbl-96-m68k 0x8p+8L : 0x8.5159209dd5b8341p+0L : inexact-ok += asinh downward ldbl-128 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4b8p+0L : inexact-ok += asinh tonearest ldbl-128 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4b8p+0L : inexact-ok += asinh towardzero ldbl-128 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4b8p+0L : inexact-ok += asinh upward ldbl-128 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4cp+0L : inexact-ok += asinh downward ldbl-128ibm 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4p+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4p+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc4p+0L : inexact-ok += asinh upward ldbl-128ibm 0x8p+8L : 0x8.5159209dd5b8340d7a01c06cc8p+0L : inexact-ok +asinh 0x1p12 += asinh downward flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok += asinh tonearest flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok += asinh towardzero flt-32 0x1p+12f : 0x9.02cb3p+0f : inexact-ok += asinh upward flt-32 0x1p+12f : 0x9.02cb4p+0f : inexact-ok += asinh downward dbl-64 0x1p+12 : 0x9.02cb37d5a789p+0 : inexact-ok += asinh tonearest dbl-64 0x1p+12 : 0x9.02cb37d5a789p+0 : inexact-ok += asinh towardzero dbl-64 0x1p+12 : 0x9.02cb37d5a789p+0 : inexact-ok += asinh upward dbl-64 0x1p+12 : 0x9.02cb37d5a7898p+0 : inexact-ok += asinh downward ldbl-96-intel 0x1p+12L : 0x9.02cb37d5a78915bp+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x1p+12L : 0x9.02cb37d5a78915cp+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x1p+12L : 0x9.02cb37d5a78915bp+0L : inexact-ok += asinh upward ldbl-96-intel 0x1p+12L : 0x9.02cb37d5a78915cp+0L : inexact-ok += asinh downward ldbl-96-m68k 0x1p+12L : 0x9.02cb37d5a78915bp+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x1p+12L : 0x9.02cb37d5a78915cp+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x1p+12L : 0x9.02cb37d5a78915bp+0L : inexact-ok += asinh upward ldbl-96-m68k 0x1p+12L : 0x9.02cb37d5a78915cp+0L : inexact-ok += asinh downward ldbl-128 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7fe8p+0L : inexact-ok += asinh tonearest ldbl-128 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7fe8p+0L : inexact-ok += asinh towardzero ldbl-128 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7fe8p+0L : inexact-ok += asinh upward ldbl-128 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7ffp+0L : inexact-ok += asinh downward ldbl-128ibm 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7cp+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x1p+12L : 0x9.02cb37d5a78915b9409d740d8p+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x1p+12L : 0x9.02cb37d5a78915b9409d740d7cp+0L : inexact-ok += asinh upward ldbl-128ibm 0x1p+12L : 0x9.02cb37d5a78915b9409d740d8p+0L : inexact-ok +asinh 0x1p13 += asinh downward flt-32 0x2p+12f : 0x9.b43d4p+0f : inexact-ok += asinh tonearest flt-32 0x2p+12f : 0x9.b43d5p+0f : inexact-ok += asinh towardzero flt-32 0x2p+12f : 0x9.b43d4p+0f : inexact-ok += asinh upward flt-32 0x2p+12f : 0x9.b43d5p+0f : inexact-ok += asinh downward dbl-64 0x2p+12 : 0x9.b43d4f9d79588p+0 : inexact-ok += asinh tonearest dbl-64 0x2p+12 : 0x9.b43d4f9d79588p+0 : inexact-ok += asinh towardzero dbl-64 0x2p+12 : 0x9.b43d4f9d79588p+0 : inexact-ok += asinh upward dbl-64 0x2p+12 : 0x9.b43d4f9d7959p+0 : inexact-ok += asinh downward ldbl-96-intel 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh tonearest ldbl-96-intel 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh towardzero ldbl-96-intel 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh upward ldbl-96-intel 0x2p+12L : 0x9.b43d4f9d7958a5fp+0L : inexact-ok += asinh downward ldbl-96-m68k 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh tonearest ldbl-96-m68k 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh towardzero ldbl-96-m68k 0x2p+12L : 0x9.b43d4f9d7958a5ep+0L : inexact-ok += asinh upward ldbl-96-m68k 0x2p+12L : 0x9.b43d4f9d7958a5fp+0L : inexact-ok += asinh downward ldbl-128 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58c9p+0L : inexact-ok += asinh tonearest ldbl-128 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58c98p+0L : inexact-ok += asinh towardzero ldbl-128 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58c9p+0L : inexact-ok += asinh upward ldbl-128 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58c98p+0L : inexact-ok += asinh downward ldbl-128ibm 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58cp+0L : inexact-ok += asinh tonearest ldbl-128ibm 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58cp+0L : inexact-ok += asinh towardzero ldbl-128ibm 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a58cp+0L : inexact-ok += asinh upward ldbl-128ibm 0x2p+12L : 0x9.b43d4f9d7958a5e50a7407a59p+0L : inexact-ok +asinh 0x1p24 += asinh downward flt-32 0x1p+24f : 0x1.154244p+4f : inexact-ok += asinh tonearest flt-32 0x1p+24f : 0x1.154246p+4f : inexact-ok += asinh towardzero flt-32 0x1p+24f : 0x1.154244p+4f : inexact-ok += asinh upward flt-32 0x1p+24f : 0x1.154246p+4f : inexact-ok += asinh downward dbl-64 0x1p+24 : 0x1.1542457337d43p+4 : inexact-ok += asinh tonearest dbl-64 0x1p+24 : 0x1.1542457337d43p+4 : inexact-ok += asinh towardzero dbl-64 0x1p+24 : 0x1.1542457337d43p+4 : inexact-ok += asinh upward dbl-64 0x1p+24 : 0x1.1542457337d44p+4 : inexact-ok += asinh downward ldbl-96-intel 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh upward ldbl-96-intel 0x1p+24L : 0x1.1542457337d4321ep+4L : inexact-ok += asinh downward ldbl-96-m68k 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x1p+24L : 0x1.1542457337d4321cp+4L : inexact-ok += asinh upward ldbl-96-m68k 0x1p+24L : 0x1.1542457337d4321ep+4L : inexact-ok += asinh downward ldbl-128 0x1p+24L : 0x1.1542457337d4321c6b73c89d84abp+4L : inexact-ok += asinh tonearest ldbl-128 0x1p+24L : 0x1.1542457337d4321c6b73c89d84acp+4L : inexact-ok += asinh towardzero ldbl-128 0x1p+24L : 0x1.1542457337d4321c6b73c89d84abp+4L : inexact-ok += asinh upward ldbl-128 0x1p+24L : 0x1.1542457337d4321c6b73c89d84acp+4L : inexact-ok += asinh downward ldbl-128ibm 0x1p+24L : 0x1.1542457337d4321c6b73c89d848p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x1p+24L : 0x1.1542457337d4321c6b73c89d848p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x1p+24L : 0x1.1542457337d4321c6b73c89d848p+4L : inexact-ok += asinh upward ldbl-128ibm 0x1p+24L : 0x1.1542457337d4321c6b73c89d85p+4L : inexact-ok +asinh 0x1p25 += asinh downward flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok += asinh tonearest flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok += asinh towardzero flt-32 0x2p+24f : 0x1.205966p+4f : inexact-ok += asinh upward flt-32 0x2p+24f : 0x1.205968p+4f : inexact-ok += asinh downward dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok += asinh tonearest dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok += asinh towardzero dbl-64 0x2p+24 : 0x1.205966f2b4f12p+4 : inexact-ok += asinh upward dbl-64 0x2p+24 : 0x1.205966f2b4f13p+4 : inexact-ok += asinh downward ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f126b6p+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f126b8p+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f126b6p+4L : inexact-ok += asinh upward ldbl-96-intel 0x2p+24L : 0x1.205966f2b4f126b8p+4L : inexact-ok += asinh downward ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f126b6p+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f126b8p+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f126b6p+4L : inexact-ok += asinh upward ldbl-96-m68k 0x2p+24L : 0x1.205966f2b4f126b8p+4L : inexact-ok += asinh downward ldbl-128 0x2p+24L : 0x1.205966f2b4f126b7281203d70652p+4L : inexact-ok += asinh tonearest ldbl-128 0x2p+24L : 0x1.205966f2b4f126b7281203d70653p+4L : inexact-ok += asinh towardzero ldbl-128 0x2p+24L : 0x1.205966f2b4f126b7281203d70652p+4L : inexact-ok += asinh upward ldbl-128 0x2p+24L : 0x1.205966f2b4f126b7281203d70653p+4L : inexact-ok += asinh downward ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f126b7281203d706p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f126b7281203d7068p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f126b7281203d706p+4L : inexact-ok += asinh upward ldbl-128ibm 0x2p+24L : 0x1.205966f2b4f126b7281203d7068p+4L : inexact-ok +asinh 0x1p26 += asinh downward flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok += asinh tonearest flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok += asinh towardzero flt-32 0x4p+24f : 0x1.2b7088p+4f : inexact-ok += asinh upward flt-32 0x4p+24f : 0x1.2b708ap+4f : inexact-ok += asinh downward dbl-64 0x4p+24 : 0x1.2b708872320e1p+4 : inexact-ok += asinh tonearest dbl-64 0x4p+24 : 0x1.2b708872320e2p+4 : inexact-ok += asinh towardzero dbl-64 0x4p+24 : 0x1.2b708872320e1p+4 : inexact-ok += asinh upward dbl-64 0x4p+24 : 0x1.2b708872320e2p+4 : inexact-ok += asinh downward ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d9p+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d92p+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d9p+4L : inexact-ok += asinh upward ldbl-96-intel 0x4p+24L : 0x1.2b708872320e1d92p+4L : inexact-ok += asinh downward ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d9p+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d92p+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d9p+4L : inexact-ok += asinh upward ldbl-96-m68k 0x4p+24L : 0x1.2b708872320e1d92p+4L : inexact-ok += asinh downward ldbl-128 0x4p+24L : 0x1.2b708872320e1d91e4b03f1086a8p+4L : inexact-ok += asinh tonearest ldbl-128 0x4p+24L : 0x1.2b708872320e1d91e4b03f1086a9p+4L : inexact-ok += asinh towardzero ldbl-128 0x4p+24L : 0x1.2b708872320e1d91e4b03f1086a8p+4L : inexact-ok += asinh upward ldbl-128 0x4p+24L : 0x1.2b708872320e1d91e4b03f1086a9p+4L : inexact-ok += asinh downward ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d91e4b03f10868p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d91e4b03f10868p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d91e4b03f10868p+4L : inexact-ok += asinh upward ldbl-128ibm 0x4p+24L : 0x1.2b708872320e1d91e4b03f1087p+4L : inexact-ok +asinh 0x1p27 += asinh downward flt-32 0x8p+24f : 0x1.3687a8p+4f : inexact-ok += asinh tonearest flt-32 0x8p+24f : 0x1.3687aap+4f : inexact-ok += asinh towardzero flt-32 0x8p+24f : 0x1.3687a8p+4f : inexact-ok += asinh upward flt-32 0x8p+24f : 0x1.3687aap+4f : inexact-ok += asinh downward dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok += asinh tonearest dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok += asinh towardzero dbl-64 0x8p+24 : 0x1.3687a9f1af2b1p+4 : inexact-ok += asinh upward dbl-64 0x8p+24 : 0x1.3687a9f1af2b2p+4 : inexact-ok += asinh downward ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh upward ldbl-96-intel 0x8p+24L : 0x1.3687a9f1af2b14fep+4L : inexact-ok += asinh downward ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14fcp+4L : inexact-ok += asinh upward ldbl-96-m68k 0x8p+24L : 0x1.3687a9f1af2b14fep+4L : inexact-ok += asinh downward ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a06e9p+4L : inexact-ok += asinh tonearest ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a06e9p+4L : inexact-ok += asinh towardzero ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a06e9p+4L : inexact-ok += asinh upward ldbl-128 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a06eap+4L : inexact-ok += asinh downward ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a068p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a07p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a068p+4L : inexact-ok += asinh upward ldbl-128ibm 0x8p+24L : 0x1.3687a9f1af2b14fca14e7a4a07p+4L : inexact-ok +asinh 0x1p28 += asinh downward flt-32 0x1p+28f : 0x1.419ecap+4f : inexact-ok += asinh tonearest flt-32 0x1p+28f : 0x1.419eccp+4f : inexact-ok += asinh towardzero flt-32 0x1p+28f : 0x1.419ecap+4f : inexact-ok += asinh upward flt-32 0x1p+28f : 0x1.419eccp+4f : inexact-ok += asinh downward dbl-64 0x1p+28 : 0x1.419ecb712c48p+4 : inexact-ok += asinh tonearest dbl-64 0x1p+28 : 0x1.419ecb712c481p+4 : inexact-ok += asinh towardzero dbl-64 0x1p+28 : 0x1.419ecb712c48p+4 : inexact-ok += asinh upward dbl-64 0x1p+28 : 0x1.419ecb712c481p+4 : inexact-ok += asinh downward ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c8ap+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c8cp+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c8ap+4L : inexact-ok += asinh upward ldbl-96-intel 0x1p+28L : 0x1.419ecb712c480c8cp+4L : inexact-ok += asinh downward ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c8ap+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c8cp+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c8ap+4L : inexact-ok += asinh upward ldbl-96-m68k 0x1p+28L : 0x1.419ecb712c480c8cp+4L : inexact-ok += asinh downward ldbl-128 0x1p+28L : 0x1.419ecb712c480c8b5decb5838728p+4L : inexact-ok += asinh tonearest ldbl-128 0x1p+28L : 0x1.419ecb712c480c8b5decb5838728p+4L : inexact-ok += asinh towardzero ldbl-128 0x1p+28L : 0x1.419ecb712c480c8b5decb5838728p+4L : inexact-ok += asinh upward ldbl-128 0x1p+28L : 0x1.419ecb712c480c8b5decb5838729p+4L : inexact-ok += asinh downward ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c8b5decb58387p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c8b5decb58387p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c8b5decb58387p+4L : inexact-ok += asinh upward ldbl-128ibm 0x1p+28L : 0x1.419ecb712c480c8b5decb583878p+4L : inexact-ok +asinh 0x1p29 += asinh downward flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok += asinh tonearest flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok += asinh towardzero flt-32 0x2p+28f : 0x1.4cb5ecp+4f : inexact-ok += asinh upward flt-32 0x2p+28f : 0x1.4cb5eep+4f : inexact-ok += asinh downward dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok += asinh tonearest dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok += asinh towardzero dbl-64 0x2p+28 : 0x1.4cb5ecf0a965p+4 : inexact-ok += asinh upward dbl-64 0x2p+28 : 0x1.4cb5ecf0a9651p+4 : inexact-ok += asinh downward ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650424p+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok += asinh upward ldbl-96-intel 0x2p+28L : 0x1.4cb5ecf0a9650424p+4L : inexact-ok += asinh downward ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok += asinh tonearest ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650424p+4L : inexact-ok += asinh towardzero ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650422p+4L : inexact-ok += asinh upward ldbl-96-m68k 0x2p+28L : 0x1.4cb5ecf0a9650424p+4L : inexact-ok += asinh downward ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd0767p+4L : inexact-ok += asinh tonearest ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd0768p+4L : inexact-ok += asinh towardzero ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd0767p+4L : inexact-ok += asinh upward ldbl-128 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd0768p+4L : inexact-ok += asinh downward ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd07p+4L : inexact-ok += asinh tonearest ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd078p+4L : inexact-ok += asinh towardzero ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd07p+4L : inexact-ok += asinh upward ldbl-128ibm 0x2p+28L : 0x1.4cb5ecf0a96504231a8af0bd078p+4L : inexact-ok +asinh 0x1p30 += asinh downward flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok += asinh tonearest flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok += asinh towardzero flt-32 0x4p+28f : 0x1.57cd0ep+4f : inexact-ok += asinh upward flt-32 0x4p+28f : 0x1.57cd1p+4f : inexact-ok += asinh downward dbl-64 0x4p+28 : 0x1.57cd0e702681fp+4 : inexact-ok += asinh tonearest dbl-64 0x4p+28 : 0x1.57cd0e702682p+4 : inexact-ok += asinh towardzero dbl-64 0x4p+28 : 0x1.57cd0e702681fp+4 : inexact-ok += asinh upward dbl-64 0x4p+28 : 0x1.57cd0e702682p+4 : inexact-ok += asinh downward ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok += asinh tonearest ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbep+4L : inexact-ok += asinh towardzero ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbcp+4L : inexact-ok += asinh upward ldbl-96-intel 0x4p+28L : 0x1.57cd0e702681fbbep+4L : inexact-ok += asinh downw |
