diff options
-rw-r--r-- | ChangeLog | 16 | ||||
-rw-r--r-- | NEWS | 20 | ||||
-rw-r--r-- | math/auto-libm-test-in | 13 | ||||
-rw-r--r-- | math/auto-libm-test-out | 732 | ||||
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 1 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_cosh.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_coshf.c | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_coshl.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/e_coshl.c | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_coshl.c | 2 |
10 files changed, 458 insertions, 338 deletions
@@ -1,5 +1,21 @@ 2014-06-23 Joseph Myers <joseph@codesourcery.com> + [BZ #16354] + [BZ #17061] + * sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Check for + small arguments before calling __expm1. + * sysdeps/ieee754/flt-32/e_coshf.c (__ieee754_coshf): Check for + small arguments before calling __expm1f. + * sysdeps/ieee754/ldbl-128/e_coshl.c (__ieee754_coshl): Check for + small arguments before calling __expm1l. + * sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl): + Likewise. + * sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise. + * math/auto-libm-test-in: Add more cosh tests. Do not allow + spurious underflow for some cosh tests. + * math/auto-libm-test-out: Regenerated. + * sysdeps/i386/fpu/libm-test-ulps: Update. + [BZ #17050] * sysdeps/ieee754/dbl-64/e_j1.c: Include <errno.h>. (__ieee754_y1): Set errno if return value overflows. @@ -11,16 +11,16 @@ Version 2.20 6804, 9894, 12994, 13347, 13651, 14308, 14770, 15119, 15132, 15347, 15514, 15698, 15804, 15894, 15946, 16002, 16064, 16095, 16198, 16284, 16315, - 16348, 16349, 16357, 16362, 16447, 16516, 16532, 16545, 16564, 16574, - 16599, 16600, 16609, 16610, 16611, 16613, 16619, 16623, 16629, 16632, - 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680, 16681, - 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16724, - 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760, 16770, 16786, - 16789, 16791, 16796, 16799, 16800, 16815, 16823, 16824, 16831, 16838, - 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16912, - 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958, 16965, - 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031, - 17042, 17048, 17050, 17058, 17062, 17069, 17075, 17079. + 16348, 16349, 16354, 16357, 16362, 16447, 16516, 16532, 16545, 16564, + 16574, 16599, 16600, 16609, 16610, 16611, 16613, 16619, 16623, 16629, + 16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680, + 16681, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714, + 16724, 16731, 16739, 16740, 16743, 16754, 16758, 16759, 16760, 16770, + 16786, 16789, 16791, 16796, 16799, 16800, 16815, 16823, 16824, 16831, + 16838, 16849, 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, + 16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958, + 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, + 17031, 17042, 17048, 17050, 17058, 17061, 17062, 17069, 17075, 17079. * Optimized strchr implementation for AArch64. Contributed by ARM Ltd. diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 8633384..4eaa013 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -624,11 +624,14 @@ cosh 50 # GCC bug 59666: results on directed rounding may be incorrect. cosh max no-test-inline xfail-rounding:ldbl-128ibm cosh -max no-test-inline xfail-rounding:ldbl-128ibm -# Bug 16354: spurious underflow may occur. -cosh min spurious-underflow -cosh -min spurious-underflow -cosh min_subnorm spurious-underflow -cosh -min_subnorm spurious-underflow +cosh min +cosh -min +cosh min_subnorm +cosh -min_subnorm +cosh 0x1p-56 +cosh -0x1p-56 +cosh 0x1p-72 +cosh -0x1p-72 # Test values either side of overflow for each floating-point format. cosh 0x5.96a7ep+4 cosh 0x5.96a7e8p+4 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 3d3e018..e47c3ab 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -75745,322 +75745,422 @@ cosh -max no-test-inline xfail-rounding:ldbl-128ibm = cosh tonearest ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : plus_infty : no-test-inline inexact-ok overflow errno-erange = cosh towardzero ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : 0xf.ffffffffffffbffffffffffffcp+1020L : no-test-inline xfail:ldbl-128ibm inexact-ok overflow errno-erange-ok = cosh upward ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : plus_infty : no-test-inline xfail:ldbl-128ibm inexact-ok overflow errno-erange -cosh min spurious-underflow -= cosh downward flt-32 0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh tonearest flt-32 0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh towardzero flt-32 0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh upward flt-32 0x4p-128f : 0x1.000002p+0f : inexact-ok underflow-ok -= cosh downward dbl-64 0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 0x4p-128 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm 0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm 0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 0x8p-972 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm 0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -cosh -min spurious-underflow -= cosh downward flt-32 -0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh tonearest flt-32 -0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh towardzero flt-32 -0x4p-128f : 0x1p+0f : inexact-ok underflow-ok -= cosh upward flt-32 -0x4p-128f : 0x1.000002p+0f : inexact-ok underflow-ok -= cosh downward dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 -0x4p-128 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm -0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 -0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm -0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 -0x8p-972 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm -0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -cosh min_subnorm spurious-underflow -= cosh downward flt-32 0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh tonearest flt-32 0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh towardzero flt-32 0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh upward flt-32 0x8p-152f : 0x1.000002p+0f : inexact-ok underflow-ok -= cosh downward dbl-64 0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 0x8p-152 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm 0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm 0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k 0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -cosh -min_subnorm spurious-underflow -= cosh downward flt-32 -0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh tonearest flt-32 -0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh towardzero flt-32 -0x8p-152f : 0x1p+0f : inexact-ok underflow-ok -= cosh upward flt-32 -0x8p-152f : 0x1.000002p+0f : inexact-ok underflow-ok -= cosh downward dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 -0x8p-152 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm -0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh tonearest dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh towardzero dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok underflow-ok -= cosh upward dbl-64 -0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128ibm -0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-intel -0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-96-m68k -0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok -= cosh downward ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh tonearest ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh towardzero ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok underflow-ok -= cosh upward ldbl-128 -0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok underflow-ok +cosh min += cosh downward flt-32 0x4p-128f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 0x4p-128f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 0x4p-128f : 0x1p+0f : inexact-ok += cosh upward flt-32 0x4p-128f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x4p-128 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x4p-128 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x4p-1024 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x8p-972 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x8p-972 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok +cosh -min += cosh downward flt-32 -0x4p-128f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 -0x4p-128f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 -0x4p-128f : 0x1p+0f : inexact-ok += cosh upward flt-32 -0x4p-128f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x4p-128 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x4p-128 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x4p-128L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-128L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x4p-128L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x4p-128L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x4p-1024 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x4p-1024 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x4p-1024L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-1024L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x4p-1024L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x4p-1024L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x4p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x2p-16384L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x2p-16384L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x2p-16384L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x8p-972 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x8p-972 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x8p-972L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x8p-972L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x8p-972L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x8p-972L : 0x1.000000000000000000000000008p+0L : inexact-ok +cosh min_subnorm += cosh downward flt-32 0x8p-152f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 0x8p-152f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 0x8p-152f : 0x1p+0f : inexact-ok += cosh upward flt-32 0x8p-152f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x8p-152 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x8p-152 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x4p-1076 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x4p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x4p-16496L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok +cosh -min_subnorm += cosh downward flt-32 -0x8p-152f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 -0x8p-152f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 -0x8p-152f : 0x1p+0f : inexact-ok += cosh upward flt-32 -0x8p-152f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x8p-152 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x8p-152 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x8p-152L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x8p-152L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x8p-152L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x8p-152L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x4p-1076 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x4p-1076 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x4p-1076L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-1076L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x4p-1076L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x4p-1076L : 0x1.000000000000000000000000008p+0L : inexact-ok += cosh downward ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x8p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x8p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x8p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x4p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x4p-16448L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-16448L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-16448L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x4p-16496L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x4p-16496L : 0x1.0000000000000000000000000001p+0L : inexact-ok +cosh 0x1p-56 += cosh downward flt-32 0x1p-56f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 0x1p-56f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 0x1p-56f : 0x1p+0f : inexact-ok += cosh upward flt-32 0x1p-56f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 0x1p-56 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x1p-56 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x1p-56 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x1p-56 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x1p-56L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x1p-56L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x1p-56L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh towardzero ldbl-128 0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x1p-56L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x1p-56L : 0x1.000000000000000000000000008p+0L : inexact-ok +cosh -0x1p-56 += cosh downward flt-32 -0x1p-56f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 -0x1p-56f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 -0x1p-56f : 0x1p+0f : inexact-ok += cosh upward flt-32 -0x1p-56f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 -0x1p-56 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x1p-56 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x1p-56 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x1p-56 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x1p-56L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x1p-56L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x1p-56L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh towardzero ldbl-128 -0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x1p-56L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x1p-56L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x1p-56L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x1p-56L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x1p-56L : 0x1.000000000000000000000000008p+0L : inexact-ok +cosh 0x1p-72 += cosh downward flt-32 0x1p-72f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 0x1p-72f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 0x1p-72f : 0x1p+0f : inexact-ok += cosh upward flt-32 0x1p-72f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 0x1p-72 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 0x1p-72 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 0x1p-72 : 0x1p+0 : inexact-ok += cosh upward dbl-64 0x1p-72 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel 0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel 0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel 0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel 0x1p-72L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k 0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k 0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k 0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k 0x1p-72L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 0x1p-72L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm 0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm 0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm 0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm 0x1p-72L : 0x1.000000000000000000000000008p+0L : inexact-ok +cosh -0x1p-72 += cosh downward flt-32 -0x1p-72f : 0x1p+0f : inexact-ok += cosh tonearest flt-32 -0x1p-72f : 0x1p+0f : inexact-ok += cosh towardzero flt-32 -0x1p-72f : 0x1p+0f : inexact-ok += cosh upward flt-32 -0x1p-72f : 0x1.000002p+0f : inexact-ok += cosh downward dbl-64 -0x1p-72 : 0x1p+0 : inexact-ok += cosh tonearest dbl-64 -0x1p-72 : 0x1p+0 : inexact-ok += cosh towardzero dbl-64 -0x1p-72 : 0x1p+0 : inexact-ok += cosh upward dbl-64 -0x1p-72 : 0x1.0000000000001p+0 : inexact-ok += cosh downward ldbl-96-intel -0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-intel -0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-intel -0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-intel -0x1p-72L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-96-m68k -0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-96-m68k -0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-96-m68k -0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-96-m68k -0x1p-72L : 0x1.0000000000000002p+0L : inexact-ok += cosh downward ldbl-128 -0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128 -0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128 -0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-128 -0x1p-72L : 0x1.0000000000000000000000000001p+0L : inexact-ok += cosh downward ldbl-128ibm -0x1p-72L : 0x1p+0L : inexact-ok += cosh tonearest ldbl-128ibm -0x1p-72L : 0x1p+0L : inexact-ok += cosh towardzero ldbl-128ibm -0x1p-72L : 0x1p+0L : inexact-ok += cosh upward ldbl-128ibm -0x1p-72L : 0x1.000000000000000000000000008p+0L : inexact-ok cosh 0x5.96a7ep+4 = cosh downward flt-32 0x5.96a7ep+4f : 0xf.fffecp+124f : inexact-ok = cosh tonearest flt-32 0x5.96a7ep+4f : 0xf.fffecp+124f : inexact-ok diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 8d9c83d..7cf9586 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -895,6 +895,7 @@ ldouble: 2 Function: "cosh_upward": double: 1 +float: 1 idouble: 1 ifloat: 1 ildouble: 2 diff --git a/sysdeps/ieee754/dbl-64/e_cosh.c b/sysdeps/ieee754/dbl-64/e_cosh.c index 6caf943..af3910d 100644 --- a/sysdeps/ieee754/dbl-64/e_cosh.c +++ b/sysdeps/ieee754/dbl-64/e_cosh.c @@ -53,10 +53,10 @@ __ieee754_cosh (double x) /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */ if (ix < 0x3fd62e43) { + if (ix < 0x3c800000) + return one; /* cosh(tiny) = 1 */ t = __expm1 (fabs (x)); w = one + t; - if (ix < 0x3c800000) - return w; /* cosh(tiny) = 1 */ return one + (t * t) / (w + w); } diff --git a/sysdeps/ieee754/flt-32/e_coshf.c b/sysdeps/ieee754/flt-32/e_coshf.c index 7eeea4d..dedda47 100644 --- a/sysdeps/ieee754/flt-32/e_coshf.c +++ b/sysdeps/ieee754/flt-32/e_coshf.c @@ -33,9 +33,9 @@ __ieee754_coshf (float x) if (ix < 0x41b00000) { /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */ if(ix<0x3eb17218) { + if (ix<0x24000000) return one; /* cosh(tiny) = 1 */ t = __expm1f(fabsf(x)); w = one+t; - if (ix<0x24000000) return w; /* cosh(tiny) = 1 */ return one+(t*t)/(w+w); } diff --git a/sysdeps/ieee754/ldbl-128/e_coshl.c b/sysdeps/ieee754/ldbl-128/e_coshl.c index 59f2030..488c318 100644 --- a/sysdeps/ieee754/ldbl-128/e_coshl.c +++ b/sysdeps/ieee754/ldbl-128/e_coshl.c @@ -77,10 +77,10 @@ __ieee754_coshl (long double x) /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */ if (ex < 0x3ffd62e4) /* 0.3465728759765625 */ { + if (ex < 0x3fb80000) /* |x| < 2^-116 */ + return one; /* cosh(tiny) = 1 */ t = __expm1l (u.value); w = one + t; - if (ex < 0x3fb80000) /* |x| < 2^-116 */ - return w; /* cosh(tiny) = 1 */ return one + (t * t) / (w + w); } diff --git a/sysdeps/ieee754/ldbl-128ibm/e_coshl.c b/sysdeps/ieee754/ldbl-128ibm/e_coshl.c index 92313e2..327b2ab 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_coshl.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_coshl.c @@ -53,9 +53,9 @@ __ieee754_coshl (long double x) /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */ if(ix<0x3fd62e42fefa39efLL) { + if (ix<0x3c80000000000000LL) return one; /* cosh(tiny) = 1 */ t = __expm1l(fabsl(x)); w = one+t; - if (ix<0x3c80000000000000LL) return w; /* cosh(tiny) = 1 */ return one+(t*t)/(w+w); } diff --git a/sysdeps/ieee754/ldbl-96/e_coshl.c b/sysdeps/ieee754/ldbl-96/e_coshl.c index 995c992..dd22cae 100644 --- a/sysdeps/ieee754/ldbl-96/e_coshl.c +++ b/sysdeps/ieee754/ldbl-96/e_coshl.c @@ -54,9 +54,9 @@ __ieee754_coshl (long double x) if (ex < 0x4003 || (ex == 0x4003 && mx < 0xb0000000u)) { /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */ if(ex < 0x3ffd || (ex == 0x3ffd && mx < 0xb17217f7u)) { + if (ex<0x3fbc) return one; /* cosh(tiny) = 1 */ t = __expm1l(fabsl(x)); w = one+t; - if (ex<0x3fbc) return w; /* cosh(tiny) = 1 */ return one+(t*t)/(w+w); } |