diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2015-08-17 23:02:54 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2015-08-17 23:02:54 +0000 |
| commit | 3fb4cfaf1f1e8d58312720c70d224e2050d469fc (patch) | |
| tree | 8293c35bf217fba00a445ecb077a546aa8992413 | |
| parent | 1e15a853ed43e9f71cbec6d36e016d31b0d238a1 (diff) | |
| download | glibc-3fb4cfaf1f1e8d58312720c70d224e2050d469fc.tar.xz glibc-3fb4cfaf1f1e8d58312720c70d224e2050d469fc.zip | |
Fix csqrt spurious underflows (bug 18823).
The csqrt functions scale up small arguments to avoid underflows when
calling hypot functions. However, even when hypot does not underflow,
a subsequent calculation of 0.5 * hypot can underflow. This patch
duly increases the threshold and scale factor to avoid such underflows
as well.
Tested for x86_64, x86 and mips64.
[BZ #18823]
* math/s_csqrt.c (__csqrt): Increase threshold and scale factor
for scaling up small arguments.
* math/s_csqrtf.c (__csqrtf): Likewise.
* math/s_csqrtl.c (__csqrtl): Likewise.
* math/auto-libm-test-in: Add more tests of csqrt.
* math/auto-libm-test-out: Regenerated.
| -rw-r--r-- | ChangeLog | 10 | ||||
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | math/auto-libm-test-in | 9 | ||||
| -rw-r--r-- | math/auto-libm-test-out | 1832 | ||||
| -rw-r--r-- | math/s_csqrt.c | 6 | ||||
| -rw-r--r-- | math/s_csqrtf.c | 6 | ||||
| -rw-r--r-- | math/s_csqrtl.c | 6 |
7 files changed, 1861 insertions, 10 deletions
@@ -1,3 +1,13 @@ +2015-08-17 Joseph Myers <joseph@codesourcery.com> + + [BZ #18823] + * math/s_csqrt.c (__csqrt): Increase threshold and scale factor + for scaling up small arguments. + * math/s_csqrtf.c (__csqrtf): Likewise. + * math/s_csqrtl.c (__csqrtl): Likewise. + * math/auto-libm-test-in: Add more tests of csqrt. + * math/auto-libm-test-out: Regenerated. + 2015-08-17 Andreas Schwab <schwab@suse.de> * sysdeps/unix/sysv/linux/powerpc/Versions (libm): Add empty @@ -11,7 +11,7 @@ Version 2.23 16517, 16519, 16520, 16734, 17905, 18084, 18086, 18265, 18480, 18525, 18618, 18647, 18661, 18681, 18674, 18778, 18781, 18787, 18789, 18790, - 18795, 18820, 18824. + 18795, 18820, 18823, 18824. * The obsolete header <regexp.h> has been removed. Programs that require this header must be updated to use <regex.h> instead. diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 44803714c9..015041aeb0 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -1162,6 +1162,15 @@ csqrt -0x0.ffp1024 0x1.1p-509 csqrt 0x0.ffp16384 0x1.1p-8189 csqrt -0x0.ffp16384 0x1.1p-8189 +csqrt 0x1p-149 0x1.000002p-126 +csqrt 0x1p-149 0x1.000004p-126 +csqrt 0x1p-1074 0x1.0000000000001p-1022 +csqrt 0x1p-1074 0x1.0000000000002p-1022 +csqrt 0x1p-16445 0x1.0000000000000002p-16382 +csqrt 0x1p-16445 0x1.0000000000000004p-16382 +csqrt 0x1p-16494 0x1.0000000000000000000000000001p-16382 +csqrt 0x1p-16494 0x1.0000000000000000000000000002p-16382 + ctan 0 0 ctan 0 -0 ctan -0 0 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index d8ede584c8..f091ccb512 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -104092,6 +104092,1838 @@ csqrt -0x0.ffp16384 0x1.1p-8189 = csqrt tonearest ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000ap-8704L 0xf.ffffffffffffdffffffffffffdep+508L : inexact-ok = csqrt towardzero ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000ap-8704L 0xf.ffffffffffffdffffffffffffdd8p+508L : inexact-ok = csqrt upward ldbl-128 -0xf.ffffffffffffbffffffffffffcp+1020L 0x8.8p-8192L : 0x4.40000000000008800000000000a4p-8704L 0xf.ffffffffffffdffffffffffffdep+508L : inexact-ok +csqrt 0x1p-149 0x1.000002p-126 += csqrt downward flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09e8p-64f 0x1.6a09e6p-64f : inexact-ok += csqrt tonearest flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok += csqrt towardzero flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09e8p-64f 0x1.6a09e6p-64f : inexact-ok += csqrt upward flt-32 0x8p-152f 0x4.000008p-128f : 0x1.6a09eap-64f 0x1.6a09e8p-64f : inexact-ok += csqrt downward dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07882p-64 0x1.6a09e667f3be3p-64 : inexact-ok += csqrt tonearest dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07883p-64 0x1.6a09e667f3be3p-64 : inexact-ok += csqrt towardzero dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07882p-64 0x1.6a09e667f3be3p-64 : inexact-ok += csqrt upward dbl-64 0x8p-152 0x4.000008p-128 : 0x1.6a09e93c07883p-64 0x1.6a09e667f3be4p-64 : inexact-ok += csqrt downward ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt upward ldbl-96-intel 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee8p-64L 0x1.6a09e667f3be3314p-64L : inexact-ok += csqrt downward ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee6p-64L 0x1.6a09e667f3be3312p-64L : inexact-ok += csqrt upward ldbl-96-m68k 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee8p-64L 0x1.6a09e667f3be3314p-64L : inexact-ok += csqrt downward ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok += csqrt tonearest ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok += csqrt towardzero ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0ccp-64L 0x1.6a09e667f3be3312968ef35a6ccfp-64L : inexact-ok += csqrt upward ldbl-128 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a0cdp-64L 0x1.6a09e667f3be3312968ef35a6cdp-64L : inexact-ok += csqrt downward ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a08p-64L 0x1.6a09e667f3be3312968ef35a6c8p-64L : inexact-ok += csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a1p-64L 0x1.6a09e667f3be3312968ef35a6dp-64L : inexact-ok += csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a08p-64L 0x1.6a09e667f3be3312968ef35a6c8p-64L : inexact-ok += csqrt upward ldbl-128ibm 0x8p-152L 0x4.000008p-128L : 0x1.6a09e93c07882ee646253113a1p-64L 0x1.6a09e667f3be3312968ef35a6dp-64L : inexact-ok +csqrt 0x1p-149 0x1.000004p-126 += csqrt downward flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok += csqrt tonearest flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e8p-64f : inexact-ok += csqrt towardzero flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09eap-64f 0x1.6a09e6p-64f : inexact-ok += csqrt upward flt-32 0x8p-152f 0x4.00001p-128f : 0x1.6a09ecp-64f 0x1.6a09e8p-64f : inexact-ok += csqrt downward dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116bp-64 0x1.6a09e7d1fda3ep-64 : inexact-ok += csqrt tonearest dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116b1p-64 0x1.6a09e7d1fda3ep-64 : inexact-ok += csqrt towardzero dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116bp-64 0x1.6a09e7d1fda3ep-64 : inexact-ok += csqrt upward dbl-64 0x8p-152 0x4.00001p-128 : 0x1.6a09eaa6116b1p-64 0x1.6a09e7d1fda3fp-64 : inexact-ok += csqrt downward ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok += csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok += csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok += csqrt upward ldbl-96-intel 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok += csqrt downward ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dcp-64L 0x1.6a09e7d1fda3e6p-64L : inexact-ok += csqrt upward ldbl-96-m68k 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc2p-64L 0x1.6a09e7d1fda3e602p-64L : inexact-ok += csqrt downward ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce3p-64L : inexact-ok += csqrt tonearest ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce4p-64L : inexact-ok += csqrt towardzero ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b938p-64L 0x1.6a09e7d1fda3e6015c9ae986dce3p-64L : inexact-ok += csqrt upward ldbl-128 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b939p-64L 0x1.6a09e7d1fda3e6015c9ae986dce4p-64L : inexact-ok += csqrt downward ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986dc8p-64L : inexact-ok += csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986ddp-64L : inexact-ok += csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b9p-64L 0x1.6a09e7d1fda3e6015c9ae986dc8p-64L : inexact-ok += csqrt upward ldbl-128ibm 0x8p-152L 0x4.00001p-128L : 0x1.6a09eaa6116b0dc14c1b98b5b98p-64L 0x1.6a09e7d1fda3e6015c9ae986ddp-64L : inexact-ok +csqrt 0x1p-1074 0x1.0000000000001p-1022 += csqrt downward flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p-76f 0x1.49852ep-76f : inexact-ok += csqrt tonearest flt-32 0x8p-152f 0x8p-152f : 0x3.1b8844p-76f 0x1.49853p-76f : inexact-ok += csqrt towardzero flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p-76f 0x1.49852ep-76f : inexact-ok += csqrt upward flt-32 0x8p-152f 0x8p-152f : 0x3.1b8844p-76f 0x1.49853p-76f : inexact-ok += csqrt downward dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab804p-76 0x1.49852f983efddp-76 : inexact-ok += csqrt tonearest dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab806p-76 0x1.49852f983efddp-76 : inexact-ok += csqrt towardzero dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab804p-76 0x1.49852f983efddp-76 : inexact-ok += csqrt upward dbl-64 0x8p-152 0x8p-152 : 0x3.1b884327ab806p-76 0x1.49852f983efdep-76 : inexact-ok += csqrt downward ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok += csqrt tonearest ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok += csqrt towardzero ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok += csqrt upward ldbl-96-intel 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok += csqrt downward ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057ep-76L 0x1.49852f983efdd57ap-76L : inexact-ok += csqrt upward ldbl-96-m68k 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e4p-76L 0x1.49852f983efdd57cp-76L : inexact-ok += csqrt downward ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d16p-76L : inexact-ok += csqrt tonearest ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d17p-76L : inexact-ok += csqrt towardzero ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396694p-76L 0x1.49852f983efdd57b4bab8f320d16p-76L : inexact-ok += csqrt upward ldbl-128 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f396696p-76L 0x1.49852f983efdd57b4bab8f320d17p-76L : inexact-ok += csqrt downward ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3966p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok += csqrt tonearest ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3967p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok += csqrt towardzero ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3966p-76L 0x1.49852f983efdd57b4bab8f320dp-76L : inexact-ok += csqrt upward ldbl-128ibm 0x8p-152L 0x8p-152L : 0x3.1b884327ab8057e2c8727f3967p-76L 0x1.49852f983efdd57b4bab8f320d8p-76L : inexact-ok += csqrt downward flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok += csqrt tonearest flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok += csqrt towardzero flt-32 0x8p-152f 0x0p+0f : 0x2.d413ccp-76f 0x0p+0f : inexact-ok += csqrt upward flt-32 0x8p-152f 0x0p+0f : 0x2.d413dp-76f 0x0p+0f : inexact-ok += csqrt downward dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe7798p-76 0x0p+0 : inexact-ok += csqrt tonearest dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe779ap-76 0x0p+0 : inexact-ok += csqrt towardzero dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe7798p-76 0x0p+0 : inexact-ok += csqrt upward dbl-64 0x8p-152 0x0p+0 : 0x2.d413cccfe779ap-76 0x0p+0 : inexact-ok += csqrt downward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-intel 0x8p-152L 0x0p+0L : 0x2.d413cccfe7799214p-76L 0x0p+0L : inexact-ok += csqrt downward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921p-76L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-m68k 0x8p-152L 0x0p+0L : 0x2.d413cccfe7799214p-76L 0x0p+0L : inexact-ok += csqrt downward ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52ap-76L 0x0p+0L : inexact-ok += csqrt upward ldbl-128 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd52cp-76L 0x0p+0L : inexact-ok += csqrt downward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd5p-76L 0x0p+0L : inexact-ok += csqrt upward ldbl-128ibm 0x8p-152L 0x0p+0L : 0x2.d413cccfe779921165f626cdd6p-76L 0x0p+0L : inexact-ok += csqrt downward dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe7798p-76 0xb.504f333f9de68p-952 : inexact-ok += csqrt tonearest dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe779ap-76 0xb.504f333f9de7p-952 : inexact-ok += csqrt towardzero dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe7798p-76 0xb.504f333f9de68p-952 : inexact-ok += csqrt upward dbl-64 0x8p-152 0x4.0000000000004p-1024 : 0x2.d413cccfe779ap-76 0xb.504f333f9de7p-952 : inexact-ok += csqrt downward ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok += csqrt tonearest ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok += csqrt towardzero ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok += csqrt upward ldbl-96-intel 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe7799214p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok += csqrt downward ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921p-76L 0xb.504f333f9de6fd4p-952L : inexact-ok += csqrt upward ldbl-96-m68k 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe7799214p-76L 0xb.504f333f9de6fd5p-952L : inexact-ok += csqrt downward ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok += csqrt tonearest ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok += csqrt towardzero ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52ap-76L 0xb.504f333f9de6fd4a8b0c9515b93p-952L : inexact-ok += csqrt upward ldbl-128 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd52cp-76L 0xb.504f333f9de6fd4a8b0c9515b938p-952L : inexact-ok += csqrt downward ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok += csqrt tonearest ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok += csqrt towardzero ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd5p-76L 0xb.504f333f9de6fd4a8b0c9515b8p-952L : inexact-ok += csqrt upward ldbl-128ibm 0x8p-152L 0x4.0000000000004p-1024L : 0x2.d413cccfe779921165f626cdd6p-76L 0xb.504f333f9de6fd4a8b0c9515bcp-952L : inexact-ok += csqrt downward flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok += csqrt tonearest flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok += csqrt towardzero flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok += csqrt upward flt-32 0x0p+0f 0x8p-152f : 0x2p-76f 0x2p-76f : inexact-ok += csqrt downward dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok += csqrt tonearest dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok += csqrt towardzero dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok += csqrt upward dbl-64 0x0p+0 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok += csqrt downward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt tonearest ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt upward ldbl-96-intel 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt upward ldbl-96-m68k 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt tonearest ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt upward ldbl-128 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt tonearest ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt upward ldbl-128ibm 0x0p+0L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt downward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok += csqrt tonearest flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok += csqrt towardzero flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok += csqrt upward flt-32 0x0p+0f 0x0p+0f : 0x0p+0f 0x0p+0f : inexact-ok += csqrt downward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok += csqrt tonearest dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok += csqrt towardzero dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok += csqrt upward dbl-64 0x0p+0 0x0p+0 : 0x0p+0 0x0p+0 : inexact-ok += csqrt downward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-intel 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt downward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-m68k 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt downward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt upward ldbl-128 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt downward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt upward ldbl-128ibm 0x0p+0L 0x0p+0L : 0x0p+0L 0x0p+0L : inexact-ok += csqrt downward dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok += csqrt tonearest dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok += csqrt towardzero dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bcdp-512 : inexact-ok += csqrt upward dbl-64 0x0p+0 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcep-512 : inexact-ok += csqrt downward ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok += csqrt tonearest ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok += csqrt towardzero ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok += csqrt upward ldbl-96-intel 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok += csqrt downward ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd458p-512L 0x1.6a09e667f3bcd458p-512L : inexact-ok += csqrt upward ldbl-96-m68k 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd45ap-512L 0x1.6a09e667f3bcd45ap-512L : inexact-ok += csqrt downward ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0bp-512L 0x1.6a09e667f3bcd459022e5304d0bp-512L : inexact-ok += csqrt tonearest ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0b1p-512L 0x1.6a09e667f3bcd459022e5304d0b1p-512L : inexact-ok += csqrt towardzero ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0bp-512L 0x1.6a09e667f3bcd459022e5304d0bp-512L : inexact-ok += csqrt upward ldbl-128 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d0b1p-512L 0x1.6a09e667f3bcd459022e5304d0b1p-512L : inexact-ok += csqrt downward ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok += csqrt tonearest ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok += csqrt towardzero ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d08p-512L 0x1.6a09e667f3bcd459022e5304d08p-512L : inexact-ok += csqrt upward ldbl-128ibm 0x0p+0L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcd459022e5304d1p-512L 0x1.6a09e667f3bcd459022e5304d1p-512L : inexact-ok += csqrt downward dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x1.fffffffffffffp-76 : inexact-ok += csqrt tonearest dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x2p-76 : inexact-ok += csqrt towardzero dbl-64 0x4p-1076 0x8p-152 : 0x2p-76 0x1.fffffffffffffp-76 : inexact-ok += csqrt upward dbl-64 0x4p-1076 0x8p-152 : 0x2.0000000000002p-76 0x2p-76 : inexact-ok += csqrt downward ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok += csqrt tonearest ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok += csqrt upward ldbl-96-intel 0x4p-1076L 0x8p-152L : 0x2.0000000000000004p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.fffffffffffffffep-76L : inexact-ok += csqrt upward ldbl-96-m68k 0x4p-1076L 0x8p-152L : 0x2.0000000000000004p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffffffp-76L : inexact-ok += csqrt tonearest ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-128 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffffffp-76L : inexact-ok += csqrt upward ldbl-128 0x4p-1076L 0x8p-152L : 0x2.0000000000000000000000000002p-76L 0x2p-76L : inexact-ok += csqrt downward ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffff8p-76L : inexact-ok += csqrt tonearest ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x2p-76L : inexact-ok += csqrt towardzero ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2p-76L 0x1.ffffffffffffffffffffffffff8p-76L : inexact-ok += csqrt upward ldbl-128ibm 0x4p-1076L 0x8p-152L : 0x2.00000000000000000000000001p-76L 0x2p-76L : inexact-ok += csqrt downward dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok += csqrt tonearest dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok += csqrt towardzero dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok += csqrt upward dbl-64 0x4p-1076 0x0p+0 : 0x8p-540 0x0p+0 : inexact-ok += csqrt downward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-intel 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt downward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt upward ldbl-96-m68k 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt downward ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt upward ldbl-128 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt downward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt tonearest ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt towardzero ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt upward ldbl-128ibm 0x4p-1076L 0x0p+0L : 0x8p-540L 0x0p+0L : inexact-ok += csqrt downward dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bccp-512 : inexact-ok += csqrt tonearest dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcdp-512 : inexact-ok += csqrt towardzero dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcdp-512 0x1.6a09e667f3bccp-512 : inexact-ok += csqrt upward dbl-64 0x4p-1076 0x4.0000000000004p-1024 : 0x1.6a09e667f3bcep-512 0x1.6a09e667f3bcdp-512 : inexact-ok += csqrt downward ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt tonearest ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt towardzero ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt upward ldbl-96-intel 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc90ap-512L : inexact-ok += csqrt downward ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt tonearest ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt towardzero ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa8p-512L 0x1.6a09e667f3bcc908p-512L : inexact-ok += csqrt upward ldbl-96-m68k 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfaap-512L 0x1.6a09e667f3bcc90ap-512L : inexact-ok += csqrt downward ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6cbp-512L 0x1.6a09e667f3bcc908b2fb1366eaefp-512L : inexact-ok += csqrt tonearest ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6ccp-512L 0x1.6a09e667f3bcc908b2fb1366eafp-512L : inexact-ok += csqrt towardzero ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6cbp-512L 0x1.6a09e667f3bcc908b2fb1366eaefp-512L : inexact-ok += csqrt upward ldbl-128 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b6ccp-512L 0x1.6a09e667f3bcc908b2fb1366eafp-512L : inexact-ok += csqrt downward ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b68p-512L 0x1.6a09e667f3bcc908b2fb1366ea8p-512L : inexact-ok += csqrt tonearest ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b7p-512L 0x1.6a09e667f3bcc908b2fb1366ebp-512L : inexact-ok += csqrt towardzero ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b68p-512L 0x1.6a09e667f3bcc908b2fb1366ea8p-512L : inexact-ok += csqrt upward ldbl-128ibm 0x4p-1076L 0x4.0000000000004p-1024L : 0x1.6a09e667f3bcdfa9516192a2b7p-512L 0x1.6a09e667f3bcc908b2fb1366ebp-512L : inexact-ok +csqrt 0x1p-1074 0x1.0000000000002p-1022 += csqrt downward flt-32 0x8p-152f 0x8p-152f : 0x3.1b884p |
