diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2013-12-18 11:38:27 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2013-12-18 11:38:27 +0000 |
| commit | 2dec468fd82c6d968f622c2c519fcb8dc09bddac (patch) | |
| tree | ebc7e3f72a6474d7aa3f6a042bb01a2917562bc3 /math | |
| parent | 4d84e6addd62bdc256627af334ba85489112e008 (diff) | |
| download | glibc-2dec468fd82c6d968f622c2c519fcb8dc09bddac.tar.xz glibc-2dec468fd82c6d968f622c2c519fcb8dc09bddac.zip | |
Fix ldbl-128 logl for subnormals (bug 16338).
This patch fixes bug 16338, ldbl-128 logl not handling subnormals
(with consequent inaccuracy for lgammal as well). The fix is simply
to use __frexpl when determining the exponent, as done already in
log2l and log10l. Given the lack of testing of small arguments to any
of the log* functions, appropriate tests are added for all of them.
Tested x86_64 and x86 and ulps updated accordingly, and spot tests
also run for mips64 to confirm the ldbl-128 fix.
Note that while this fixes lgammal inaccuracy for small positive
arguments, I suspect that there will still be problems with spurious
underflows in that case.
* sysdeps/ieee754/ldbl-128/e_logl.c (__ieee754_logl): Use __frexpl
to determine exponent and adjust argument to have exponent of -1.
* math/auto-libm-test-in: Add more tests of log, log10, log1p and
log2.
* math/auto-libm-test-out: Regenerated.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
Diffstat (limited to 'math')
| -rw-r--r-- | math/auto-libm-test-in | 11 | ||||
| -rw-r--r-- | math/auto-libm-test-out | 790 |
2 files changed, 801 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index dd4fd22886..30e1ec6b38 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -414,6 +414,8 @@ log 1/e log 2 log 10 log 0.75 +log min +log min_subnorm log10 1 log10 0.1 @@ -422,12 +424,19 @@ log10 100.0 log10 10000.0 log10 e log10 0.75 +log10 min +log10 min_subnorm log1p 0 log1p -0 log1p e-1 log1p -0.25 log1p -0.875 +# Bug 16339: underflow exception may be missing. +log1p min missing-underflow +log1p min_subnorm missing-underflow +log1p -min missing-underflow +log1p -min_subnorm missing-underflow log2 1 log2 e @@ -435,6 +444,8 @@ log2 2.0 log2 16.0 log2 256.0 log2 0.75 +log2 min +log2 min_subnorm pow 0 0 pow 0 -0 diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index 7076b687ae..ff55c14271 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -26059,6 +26059,164 @@ log 0.75 = log tonearest ldbl-128ibm 0xcp-4L : -0x4.9a58844d36e49e0efadd9db02ap-4L : inexact-ok = log towardzero ldbl-128ibm 0xcp-4L : -0x4.9a58844d36e49e0efadd9db02ap-4L : inexact-ok = log upward ldbl-128ibm 0xcp-4L : -0x4.9a58844d36e49e0efadd9db02ap-4L : inexact-ok +log min += log downward flt-32 0x4p-128f : -0x5.75628p+4f : inexact-ok += log tonearest flt-32 0x4p-128f : -0x5.75628p+4f : inexact-ok += log towardzero flt-32 0x4p-128f : -0x5.756278p+4f : inexact-ok += log upward flt-32 0x4p-128f : -0x5.756278p+4f : inexact-ok += log downward dbl-64 0x4p-128 : -0x5.75627cbf9442p+4 : inexact-ok += log tonearest dbl-64 0x4p-128 : -0x5.75627cbf9441cp+4 : inexact-ok += log towardzero dbl-64 0x4p-128 : -0x5.75627cbf9441cp+4 : inexact-ok += log upward dbl-64 0x4p-128 : -0x5.75627cbf9441cp+4 : inexact-ok += log downward ldbl-96-intel 0x4p-128L : -0x5.75627cbf9441de3p+4L : inexact-ok += log tonearest ldbl-96-intel 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log towardzero ldbl-96-intel 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log upward ldbl-96-intel 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log downward ldbl-96-m68k 0x4p-128L : -0x5.75627cbf9441de3p+4L : inexact-ok += log tonearest ldbl-96-m68k 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log towardzero ldbl-96-m68k 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log upward ldbl-96-m68k 0x4p-128L : -0x5.75627cbf9441de28p+4L : inexact-ok += log downward ldbl-128 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1f1cp+4L : inexact-ok += log tonearest ldbl-128 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1f18p+4L : inexact-ok += log towardzero ldbl-128 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1f18p+4L : inexact-ok += log upward ldbl-128 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1f18p+4L : inexact-ok += log downward ldbl-128ibm 0x4p-128L : -0x5.75627cbf9441de28d5e1264d2p+4L : inexact-ok += log tonearest ldbl-128ibm 0x4p-128L : -0x5.75627cbf9441de28d5e1264d2p+4L : inexact-ok += log towardzero ldbl-128ibm 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1ep+4L : inexact-ok += log upward ldbl-128ibm 0x4p-128L : -0x5.75627cbf9441de28d5e1264d1ep+4L : inexact-ok += log downward dbl-64 0x4p-1024 : -0x2.c4657baf579a6p+8 : inexact-ok += log tonearest dbl-64 0x4p-1024 : -0x2.c4657baf579a4p+8 : inexact-ok += log towardzero dbl-64 0x4p-1024 : -0x2.c4657baf579a4p+8 : inexact-ok += log upward dbl-64 0x4p-1024 : -0x2.c4657baf579a4p+8 : inexact-ok += log downward ldbl-96-intel 0x4p-1024L : -0x2.c4657baf579a47bcp+8L : inexact-ok += log tonearest ldbl-96-intel 0x4p-1024L : -0x2.c4657baf579a47bcp+8L : inexact-ok += log towardzero ldbl-96-intel 0x4p-1024L : -0x2.c4657baf579a47b8p+8L : inexact-ok += log upward ldbl-96-intel 0x4p-1024L : -0x2.c4657baf579a47b8p+8L : inexact-ok += log downward ldbl-96-m68k 0x4p-1024L : -0x2.c4657baf579a47bcp+8L : inexact-ok += log tonearest ldbl-96-m68k 0x4p-1024L : -0x2.c4657baf579a47bcp+8L : inexact-ok += log towardzero ldbl-96-m68k 0x4p-1024L : -0x2.c4657baf579a47b8p+8L : inexact-ok += log upward ldbl-96-m68k 0x4p-1024L : -0x2.c4657baf579a47b8p+8L : inexact-ok += log downward ldbl-128 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfc4p+8L : inexact-ok += log tonearest ldbl-128 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfc4p+8L : inexact-ok += log towardzero ldbl-128 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfc2p+8L : inexact-ok += log upward ldbl-128 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfc2p+8L : inexact-ok += log downward ldbl-128ibm 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8ep+8L : inexact-ok += log tonearest ldbl-128ibm 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8ep+8L : inexact-ok += log towardzero ldbl-128ibm 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfp+8L : inexact-ok += log upward ldbl-128ibm 0x4p-1024L : -0x2.c4657baf579a47bbcffb06f8dfp+8L : inexact-ok += log downward ldbl-96-intel 0x4p-16384L : -0x2.c5b2319c4843accp+12L : inexact-ok += log tonearest ldbl-96-intel 0x4p-16384L : -0x2.c5b2319c4843accp+12L : inexact-ok += log towardzero ldbl-96-intel 0x4p-16384L : -0x2.c5b2319c4843acbcp+12L : inexact-ok += log upward ldbl-96-intel 0x4p-16384L : -0x2.c5b2319c4843acbcp+12L : inexact-ok += log downward ldbl-96-m68k 0x4p-16384L : -0x2.c5b2319c4843accp+12L : inexact-ok += log tonearest ldbl-96-m68k 0x4p-16384L : -0x2.c5b2319c4843accp+12L : inexact-ok += log towardzero ldbl-96-m68k 0x4p-16384L : -0x2.c5b2319c4843acbcp+12L : inexact-ok += log upward ldbl-96-m68k 0x4p-16384L : -0x2.c5b2319c4843acbcp+12L : inexact-ok += log downward ldbl-128 0x4p-16384L : -0x2.c5b2319c4843acbff21591e99cccp+12L : inexact-ok += log tonearest ldbl-128 0x4p-16384L : -0x2.c5b2319c4843acbff21591e99ccap+12L : inexact-ok += log towardzero ldbl-128 0x4p-16384L : -0x2.c5b2319c4843acbff21591e99ccap+12L : inexact-ok += log upward ldbl-128 0x4p-16384L : -0x2.c5b2319c4843acbff21591e99ccap+12L : inexact-ok += log downward ldbl-96-intel 0x2p-16384L : -0x2.c5bd48bdc7c0c9b8p+12L : inexact-ok += log tonearest ldbl-96-intel 0x2p-16384L : -0x2.c5bd48bdc7c0c9b8p+12L : inexact-ok += log towardzero ldbl-96-intel 0x2p-16384L : -0x2.c5bd48bdc7c0c9b4p+12L : inexact-ok += log upward ldbl-96-intel 0x2p-16384L : -0x2.c5bd48bdc7c0c9b4p+12L : inexact-ok += log downward ldbl-96-m68k 0x2p-16384L : -0x2.c5bd48bdc7c0c9b8p+12L : inexact-ok += log tonearest ldbl-96-m68k 0x2p-16384L : -0x2.c5bd48bdc7c0c9b8p+12L : inexact-ok += log towardzero ldbl-96-m68k 0x2p-16384L : -0x2.c5bd48bdc7c0c9b4p+12L : inexact-ok += log upward ldbl-96-m68k 0x2p-16384L : -0x2.c5bd48bdc7c0c9b4p+12L : inexact-ok += log downward ldbl-128 0x2p-16384L : -0x2.c5bd48bdc7c0c9b78cd23024d64cp+12L : inexact-ok += log tonearest ldbl-128 0x2p-16384L : -0x2.c5bd48bdc7c0c9b78cd23024d64cp+12L : inexact-ok += log towardzero ldbl-128 0x2p-16384L : -0x2.c5bd48bdc7c0c9b78cd23024d64ap+12L : inexact-ok += log upward ldbl-128 0x2p-16384L : -0x2.c5bd48bdc7c0c9b78cd23024d64ap+12L : inexact-ok += log downward dbl-64 0x8p-972 : -0x2.9fa8dcb9092a6p+8 : inexact-ok += log tonearest dbl-64 0x8p-972 : -0x2.9fa8dcb9092a6p+8 : inexact-ok += log towardzero dbl-64 0x8p-972 : -0x2.9fa8dcb9092a4p+8 : inexact-ok += log upward dbl-64 0x8p-972 : -0x2.9fa8dcb9092a4p+8 : inexact-ok += log downward ldbl-96-intel 0x8p-972L : -0x2.9fa8dcb9092a538cp+8L : inexact-ok += log tonearest ldbl-96-intel 0x8p-972L : -0x2.9fa8dcb9092a538cp+8L : inexact-ok += log towardzero ldbl-96-intel 0x8p-972L : -0x2.9fa8dcb9092a5388p+8L : inexact-ok += log upward ldbl-96-intel 0x8p-972L : -0x2.9fa8dcb9092a5388p+8L : inexact-ok += log downward ldbl-96-m68k 0x8p-972L : -0x2.9fa8dcb9092a538cp+8L : inexact-ok += log tonearest ldbl-96-m68k 0x8p-972L : -0x2.9fa8dcb9092a538cp+8L : inexact-ok += log towardzero ldbl-96-m68k 0x8p-972L : -0x2.9fa8dcb9092a5388p+8L : inexact-ok += log upward ldbl-96-m68k 0x8p-972L : -0x2.9fa8dcb9092a5388p+8L : inexact-ok += log downward ldbl-128 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66f4p+8L : inexact-ok += log tonearest ldbl-128 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66f2p+8L : inexact-ok += log towardzero ldbl-128 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66f2p+8L : inexact-ok += log upward ldbl-128 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66f2p+8L : inexact-ok += log downward ldbl-128ibm 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca67p+8L : inexact-ok += log tonearest ldbl-128ibm 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca67p+8L : inexact-ok += log towardzero ldbl-128ibm 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66p+8L : inexact-ok += log upward ldbl-128ibm 0x8p-972L : -0x2.9fa8dcb9092a538b3f2ee2ca66p+8L : inexact-ok +log min_subnorm += log downward flt-32 0x8p-152f : -0x6.74768p+4f : inexact-ok += log tonearest flt-32 0x8p-152f : -0x6.74768p+4f : inexact-ok += log towardzero flt-32 0x8p-152f : -0x6.747678p+4f : inexact-ok += log upward flt-32 0x8p-152f : -0x6.747678p+4f : inexact-ok += log downward dbl-64 0x8p-152 : -0x6.74767f33d1dc4p+4 : inexact-ok += log tonearest dbl-64 0x8p-152 : -0x6.74767f33d1dcp+4 : inexact-ok += log towardzero dbl-64 0x8p-152 : -0x6.74767f33d1dcp+4 : inexact-ok += log upward dbl-64 0x8p-152 : -0x6.74767f33d1dcp+4 : inexact-ok += log downward ldbl-96-intel 0x8p-152L : -0x6.74767f33d1dc1d1p+4L : inexact-ok += log tonearest ldbl-96-intel 0x8p-152L : -0x6.74767f33d1dc1d1p+4L : inexact-ok += log towardzero ldbl-96-intel 0x8p-152L : -0x6.74767f33d1dc1d08p+4L : inexact-ok += log upward ldbl-96-intel 0x8p-152L : -0x6.74767f33d1dc1d08p+4L : inexact-ok += log downward ldbl-96-m68k 0x8p-152L : -0x6.74767f33d1dc1d1p+4L : inexact-ok += log tonearest ldbl-96-m68k 0x8p-152L : -0x6.74767f33d1dc1d1p+4L : inexact-ok += log towardzero ldbl-96-m68k 0x8p-152L : -0x6.74767f33d1dc1d08p+4L : inexact-ok += log upward ldbl-96-m68k 0x8p-152L : -0x6.74767f33d1dc1d08p+4L : inexact-ok += log downward ldbl-128 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4c8p+4L : inexact-ok += log tonearest ldbl-128 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4c4p+4L : inexact-ok += log towardzero ldbl-128 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4c4p+4L : inexact-ok += log upward ldbl-128 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4c4p+4L : inexact-ok += log downward ldbl-128ibm 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a6p+4L : inexact-ok += log tonearest ldbl-128ibm 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4p+4L : inexact-ok += log towardzero ldbl-128ibm 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4p+4L : inexact-ok += log upward ldbl-128ibm 0x8p-152L : -0x6.74767f33d1dc1d0fc8187877a4p+4L : inexact-ok += log downward dbl-64 0x4p-1076 : -0x2.e870a88dae388p+8 : inexact-ok += log tonearest dbl-64 0x4p-1076 : -0x2.e870a88dae386p+8 : inexact-ok += log towardzero dbl-64 0x4p-1076 : -0x2.e870a88dae386p+8 : inexact-ok += log upward dbl-64 0x4p-1076 : -0x2.e870a88dae386p+8 : inexact-ok += log downward ldbl-96-intel 0x4p-1076L : -0x2.e870a88dae386c74p+8L : inexact-ok += log tonearest ldbl-96-intel 0x4p-1076L : -0x2.e870a88dae386c74p+8L : inexact-ok += log towardzero ldbl-96-intel 0x4p-1076L : -0x2.e870a88dae386c7p+8L : inexact-ok += log upward ldbl-96-intel 0x4p-1076L : -0x2.e870a88dae386c7p+8L : inexact-ok += log downward ldbl-96-m68k 0x4p-1076L : -0x2.e870a88dae386c74p+8L : inexact-ok += log tonearest ldbl-96-m68k 0x4p-1076L : -0x2.e870a88dae386c74p+8L : inexact-ok += log towardzero ldbl-96-m68k 0x4p-1076L : -0x2.e870a88dae386c7p+8L : inexact-ok += log upward ldbl-96-m68k 0x4p-1076L : -0x2.e870a88dae386c7p+8L : inexact-ok += log downward ldbl-128 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c092p+8L : inexact-ok += log tonearest ldbl-128 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c09p+8L : inexact-ok += log towardzero ldbl-128 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c09p+8L : inexact-ok += log upward ldbl-128 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c09p+8L : inexact-ok += log downward ldbl-128ibm 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c1p+8L : inexact-ok += log tonearest ldbl-128ibm 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773c1p+8L : inexact-ok += log towardzero ldbl-128ibm 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773cp+8L : inexact-ok += log upward ldbl-128ibm 0x4p-1076L : -0x2.e870a88dae386c72b4fd4773cp+8L : inexact-ok += log downward ldbl-96-intel 0x8p-16448L : -0x2.c86ce2daa80dcdbp+12L : inexact-ok += log tonearest ldbl-96-intel 0x8p-16448L : -0x2.c86ce2daa80dcdbp+12L : inexact-ok += log towardzero ldbl-96-intel 0x8p-16448L : -0x2.c86ce2daa80dcdacp+12L : inexact-ok += log upward ldbl-96-intel 0x8p-16448L : -0x2.c86ce2daa80dcdacp+12L : inexact-ok += log downward ldbl-96-m68k 0x8p-16448L : -0x2.c86ce2daa80dcdbp+12L : inexact-ok += log tonearest ldbl-96-m68k 0x8p-16448L : -0x2.c86ce2daa80dcdbp+12L : inexact-ok += log towardzero ldbl-96-m68k 0x8p-16448L : -0x2.c86ce2daa80dcdacp+12L : inexact-ok += log upward ldbl-96-m68k 0x8p-16448L : -0x2.c86ce2daa80dcdacp+12L : inexact-ok += log downward ldbl-128 0x8p-16448L : -0x2.c86ce2daa80dcdaf0680827cc35cp+12L : inexact-ok += log tonearest ldbl-128 0x8p-16448L : -0x2.c86ce2daa80dcdaf0680827cc35ap+12L : inexact-ok += log towardzero ldbl-128 0x8p-16448L : -0x2.c86ce2daa80dcdaf0680827cc35ap+12L : inexact-ok += log upward ldbl-128 0x8p-16448L : -0x2.c86ce2daa80dcdaf0680827cc35ap+12L : inexact-ok += log downward ldbl-96-m68k 0x4p-16448L : -0x2.c877f9fc278aeaa8p+12L : inexact-ok += log tonearest ldbl-96-m68k 0x4p-16448L : -0x2.c877f9fc278aeaa8p+12L : inexact-ok += log towardzero ldbl-96-m68k 0x4p-16448L : -0x2.c877f9fc278aeaa4p+12L : inexact-ok += log upward ldbl-96-m68k 0x4p-16448L : -0x2.c877f9fc278aeaa4p+12L : inexact-ok += log downward ldbl-128 0x4p-16448L : -0x2.c877f9fc278aeaa6a13d20b7fcdcp+12L : inexact-ok += log tonearest ldbl-128 0x4p-16448L : -0x2.c877f9fc278aeaa6a13d20b7fcdap+12L : inexact-ok += log towardzero ldbl-128 0x4p-16448L : -0x2.c877f9fc278aeaa6a13d20b7fcdap+12L : inexact-ok += log upward ldbl-128 0x4p-16448L : -0x2.c877f9fc278aeaa6a13d20b7fcdap+12L : inexact-ok += log downward ldbl-128 0x4p-16496L : -0x2.ca8c50440f005913a49acbd2c4e8p+12L : inexact-ok += log tonearest ldbl-128 0x4p-16496L : -0x2.ca8c50440f005913a49acbd2c4e6p+12L : inexact-ok += log towardzero ldbl-128 0x4p-16496L : -0x2.ca8c50440f005913a49acbd2c4e6p+12L : inexact-ok += log upward ldbl-128 0x4p-16496L : -0x2.ca8c50440f005913a49acbd2c4e6p+12L : inexact-ok log10 1 = log10 downward flt-32 0x1p+0f : 0x0p+0f : inexact-ok = log10 tonearest flt-32 0x1p+0f : 0x0p+0f : inexact-ok @@ -26474,6 +26632,164 @@ log10 0.75 = log10 tonearest ldbl-128ibm 0xcp-4L : -0x1.ffbfc2bbc780375837c4b0b84fp-4L : inexact-ok = log10 towardzero ldbl-128ibm 0xcp-4L : -0x1.ffbfc2bbc780375837c4b0b84fp-4L : inexact-ok = log10 upward ldbl-128ibm 0xcp-4L : -0x1.ffbfc2bbc780375837c4b0b84fp-4L : inexact-ok +log10 min += log10 downward flt-32 0x4p-128f : -0x2.5ee064p+4f : inexact-ok += log10 tonearest flt-32 0x4p-128f : -0x2.5ee06p+4f : inexact-ok += log10 towardzero flt-32 0x4p-128f : -0x2.5ee06p+4f : inexact-ok += log10 upward flt-32 0x4p-128f : -0x2.5ee06p+4f : inexact-ok += log10 downward dbl-64 0x4p-128 : -0x2.5ee0606b9f82ep+4 : inexact-ok += log10 tonearest dbl-64 0x4p-128 : -0x2.5ee0606b9f82ep+4 : inexact-ok += log10 towardzero dbl-64 0x4p-128 : -0x2.5ee0606b9f82cp+4 : inexact-ok += log10 upward dbl-64 0x4p-128 : -0x2.5ee0606b9f82cp+4 : inexact-ok += log10 downward ldbl-96-intel 0x4p-128L : -0x2.5ee0606b9f82deecp+4L : inexact-ok += log10 tonearest ldbl-96-intel 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 towardzero ldbl-96-intel 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 upward ldbl-96-intel 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 downward ldbl-96-m68k 0x4p-128L : -0x2.5ee0606b9f82deecp+4L : inexact-ok += log10 tonearest ldbl-96-m68k 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 towardzero ldbl-96-m68k 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 upward ldbl-96-m68k 0x4p-128L : -0x2.5ee0606b9f82dee8p+4L : inexact-ok += log10 downward ldbl-128 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156d3ap+4L : inexact-ok += log10 tonearest ldbl-128 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156d3ap+4L : inexact-ok += log10 towardzero ldbl-128 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156d38p+4L : inexact-ok += log10 upward ldbl-128 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156d38p+4L : inexact-ok += log10 downward ldbl-128ibm 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156ep+4L : inexact-ok += log10 tonearest ldbl-128ibm 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156dp+4L : inexact-ok += log10 towardzero ldbl-128ibm 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156dp+4L : inexact-ok += log10 upward ldbl-128ibm 0x4p-128L : -0x2.5ee0606b9f82dee8b52cd1156dp+4L : inexact-ok += log10 downward dbl-64 0x4p-1024 : -0x1.33a7146f72a42p+8 : inexact-ok += log10 tonearest dbl-64 0x4p-1024 : -0x1.33a7146f72a42p+8 : inexact-ok += log10 towardzero dbl-64 0x4p-1024 : -0x1.33a7146f72a41p+8 : inexact-ok += log10 upward dbl-64 0x4p-1024 : -0x1.33a7146f72a41p+8 : inexact-ok += log10 downward ldbl-96-intel 0x4p-1024L : -0x1.33a7146f72a41f3ap+8L : inexact-ok += log10 tonearest ldbl-96-intel 0x4p-1024L : -0x1.33a7146f72a41f3ap+8L : inexact-ok += log10 towardzero ldbl-96-intel 0x4p-1024L : -0x1.33a7146f72a41f38p+8L : inexact-ok += log10 upward ldbl-96-intel 0x4p-1024L : -0x1.33a7146f72a41f38p+8L : inexact-ok += log10 downward ldbl-96-m68k 0x4p-1024L : -0x1.33a7146f72a41f3ap+8L : inexact-ok += log10 tonearest ldbl-96-m68k 0x4p-1024L : -0x1.33a7146f72a41f3ap+8L : inexact-ok += log10 towardzero ldbl-96-m68k 0x4p-1024L : -0x1.33a7146f72a41f38p+8L : inexact-ok += log10 upward ldbl-96-m68k 0x4p-1024L : -0x1.33a7146f72a41f38p+8L : inexact-ok += log10 downward ldbl-128 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6aeep+8L : inexact-ok += log10 tonearest ldbl-128 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6aedp+8L : inexact-ok += log10 towardzero ldbl-128 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6aedp+8L : inexact-ok += log10 upward ldbl-128 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6aedp+8L : inexact-ok += log10 downward ldbl-128ibm 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6bp+8L : inexact-ok += log10 tonearest ldbl-128ibm 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6bp+8L : inexact-ok += log10 towardzero ldbl-128ibm 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6a8p+8L : inexact-ok += log10 upward ldbl-128ibm 0x4p-1024L : -0x1.33a7146f72a41f39868329fe6a8p+8L : inexact-ok += log10 downward ldbl-96-intel 0x4p-16384L : -0x1.343793004f503232p+12L : inexact-ok += log10 tonearest ldbl-96-intel 0x4p-16384L : -0x1.343793004f503232p+12L : inexact-ok += log10 towardzero ldbl-96-intel 0x4p-16384L : -0x1.343793004f50323p+12L : inexact-ok += log10 upward ldbl-96-intel 0x4p-16384L : -0x1.343793004f50323p+12L : inexact-ok += log10 downward ldbl-96-m68k 0x4p-16384L : -0x1.343793004f503232p+12L : inexact-ok += log10 tonearest ldbl-96-m68k 0x4p-16384L : -0x1.343793004f503232p+12L : inexact-ok += log10 towardzero ldbl-96-m68k 0x4p-16384L : -0x1.343793004f50323p+12L : inexact-ok += log10 upward ldbl-96-m68k 0x4p-16384L : -0x1.343793004f50323p+12L : inexact-ok += log10 downward ldbl-128 0x4p-16384L : -0x1.343793004f503231a589bac27c39p+12L : inexact-ok += log10 tonearest ldbl-128 0x4p-16384L : -0x1.343793004f503231a589bac27c38p+12L : inexact-ok += log10 towardzero ldbl-128 0x4p-16384L : -0x1.343793004f503231a589bac27c38p+12L : inexact-ok += log10 upward ldbl-128 0x4p-16384L : -0x1.343793004f503231a589bac27c38p+12L : inexact-ok += log10 downward ldbl-96-intel 0x2p-16384L : -0x1.343c6405237810b2p+12L : inexact-ok += log10 tonearest ldbl-96-intel 0x2p-16384L : -0x1.343c6405237810b2p+12L : inexact-ok += log10 towardzero ldbl-96-intel 0x2p-16384L : -0x1.343c6405237810bp+12L : inexact-ok += log10 upward ldbl-96-intel 0x2p-16384L : -0x1.343c6405237810bp+12L : inexact-ok += log10 downward ldbl-96-m68k 0x2p-16384L : -0x1.343c6405237810b2p+12L : inexact-ok += log10 tonearest ldbl-96-m68k 0x2p-16384L : -0x1.343c6405237810b2p+12L : inexact-ok += log10 towardzero ldbl-96-m68k 0x2p-16384L : -0x1.343c6405237810bp+12L : inexact-ok += log10 upward ldbl-96-m68k 0x2p-16384L : -0x1.343c6405237810bp+12L : inexact-ok += log10 downward ldbl-128 0x2p-16384L : -0x1.343c6405237810b1624e370d4999p+12L : inexact-ok += log10 tonearest ldbl-128 0x2p-16384L : -0x1.343c6405237810b1624e370d4999p+12L : inexact-ok += log10 towardzero ldbl-128 0x2p-16384L : -0x1.343c6405237810b1624e370d4998p+12L : inexact-ok += log10 upward ldbl-128 0x2p-16384L : -0x1.343c6405237810b1624e370d4998p+12L : inexact-ok += log10 downward dbl-64 0x8p-972 : -0x1.23b2b470ae932p+8 : inexact-ok += log10 tonearest dbl-64 0x8p-972 : -0x1.23b2b470ae932p+8 : inexact-ok += log10 towardzero dbl-64 0x8p-972 : -0x1.23b2b470ae931p+8 : inexact-ok += log10 upward dbl-64 0x8p-972 : -0x1.23b2b470ae931p+8 : inexact-ok += log10 downward ldbl-96-intel 0x8p-972L : -0x1.23b2b470ae93181ap+8L : inexact-ok += log10 tonearest ldbl-96-intel 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 towardzero ldbl-96-intel 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 upward ldbl-96-intel 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 downward ldbl-96-m68k 0x8p-972L : -0x1.23b2b470ae93181ap+8L : inexact-ok += log10 tonearest ldbl-96-m68k 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 towardzero ldbl-96-m68k 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 upward ldbl-96-m68k 0x8p-972L : -0x1.23b2b470ae931818p+8L : inexact-ok += log10 downward ldbl-128 0x8p-972L : -0x1.23b2b470ae9318183ba772361bbep+8L : inexact-ok += log10 tonearest ldbl-128 0x8p-972L : -0x1.23b2b470ae9318183ba772361bbdp+8L : inexact-ok += log10 towardzero ldbl-128 0x8p-972L : -0x1.23b2b470ae9318183ba772361bbdp+8L : inexact-ok += log10 upward ldbl-128 0x8p-972L : -0x1.23b2b470ae9318183ba772361bbdp+8L : inexact-ok += log10 downward ldbl-128ibm 0x8p-972L : -0x1.23b2b470ae9318183ba772361cp+8L : inexact-ok += log10 tonearest ldbl-128ibm 0x8p-972L : -0x1.23b2b470ae9318183ba772361b8p+8L : inexact-ok += log10 towardzero ldbl-128ibm 0x8p-972L : -0x1.23b2b470ae9318183ba772361b8p+8L : inexact-ok += log10 upward ldbl-128ibm 0x8p-972L : -0x1.23b2b470ae9318183ba772361b8p+8L : inexact-ok +log10 min_subnorm += log10 downward flt-32 0x8p-152f : -0x2.cda7dp+4f : inexact-ok += log10 tonearest flt-32 0x8p-152f : -0x2.cda7dp+4f : inexact-ok += log10 towardzero flt-32 0x8p-152f : -0x2.cda7ccp+4f : inexact-ok += log10 upward flt-32 0x8p-152f : -0x2.cda7ccp+4f : inexact-ok += log10 downward dbl-64 0x8p-152 : -0x2.cda7cf7b34806p+4 : inexact-ok += log10 tonearest dbl-64 0x8p-152 : -0x2.cda7cf7b34806p+4 : inexact-ok += log10 towardzero dbl-64 0x8p-152 : -0x2.cda7cf7b34804p+4 : inexact-ok += log10 upward dbl-64 0x8p-152 : -0x2.cda7cf7b34804p+4 : inexact-ok += log10 downward ldbl-96-intel 0x8p-152L : -0x2.cda7cf7b348058ep+4L : inexact-ok += log10 tonearest ldbl-96-intel 0x8p-152L : -0x2.cda7cf7b348058ep+4L : inexact-ok += log10 towardzero ldbl-96-intel 0x8p-152L : -0x2.cda7cf7b348058dcp+4L : inexact-ok += log10 upward ldbl-96-intel 0x8p-152L : -0x2.cda7cf7b348058dcp+4L : inexact-ok += log10 downward ldbl-96-m68k 0x8p-152L : -0x2.cda7cf7b348058ep+4L : inexact-ok += log10 tonearest ldbl-96-m68k 0x8p-152L : -0x2.cda7cf7b348058ep+4L : inexact-ok += log10 towardzero ldbl-96-m68k 0x8p-152L : -0x2.cda7cf7b348058dcp+4L : inexact-ok += log10 upward ldbl-96-m68k 0x8p-152L : -0x2.cda7cf7b348058dcp+4L : inexact-ok += log10 downward ldbl-128 0x8p-152L : -0x2.cda7cf7b348058de5c578989157cp+4L : inexact-ok += log10 tonearest ldbl-128 0x8p-152L : -0x2.cda7cf7b348058de5c578989157cp+4L : inexact-ok += log10 towardzero ldbl-128 0x8p-152L : -0x2.cda7cf7b348058de5c578989157ap+4L : inexact-ok += log10 upward ldbl-128 0x8p-152L : -0x2.cda7cf7b348058de5c578989157ap+4L : inexact-ok += log10 downward ldbl-128ibm 0x8p-152L : -0x2.cda7cf7b348058de5c57898916p+4L : inexact-ok += log10 tonearest ldbl-128ibm 0x8p-152L : -0x2.cda7cf7b348058de5c57898915p+4L : inexact-ok += log10 towardzero ldbl-128ibm 0x8p-152L : -0x2.cda7cf7b348058de5c57898915p+4L : inexact-ok += log10 upward ldbl-128ibm 0x8p-152L : -0x2.cda7cf7b348058de5c57898915p+4L : inexact-ok += log10 downward dbl-64 0x4p-1076 : -0x1.434e6420f4374p+8 : inexact-ok += log10 tonearest dbl-64 0x4p-1076 : -0x1.434e6420f4374p+8 : inexact-ok += log10 towardzero dbl-64 0x4p-1076 : -0x1.434e6420f4373p+8 : inexact-ok += log10 upward dbl-64 0x4p-1076 : -0x1.434e6420f4373p+8 : inexact-ok += log10 downward ldbl-96-intel 0x4p-1076L : -0x1.434e6420f4373e6p+8L : inexact-ok += log10 tonearest ldbl-96-intel 0x4p-1076L : -0x1.434e6420f4373e6p+8L : inexact-ok += log10 towardzero ldbl-96-intel 0x4p-1076L : -0x1.434e6420f4373e5ep+8L : inexact-ok += log10 upward ldbl-96-intel 0x4p-1076L : -0x1.434e6420f4373e5ep+8L : inexact-ok += log10 downward ldbl-96-m68k 0x4p-1076L : -0x1.434e6420f4373e6p+8L : inexact-ok += log10 tonearest ldbl-96-m68k 0x4p-1076L : -0x1.434e6420f4373e6p+8L : inexact-ok += log10 towardzero ldbl-96-m68k 0x4p-1076L : -0x1.434e6420f4373e5ep+8L : inexact-ok += log10 upward ldbl-96-m68k 0x4p-1076L : -0x1.434e6420f4373e5ep+8L : inexact-ok += log10 downward ldbl-128 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e419p+8L : inexact-ok += log10 tonearest ldbl-128 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e418p+8L : inexact-ok += log10 towardzero ldbl-128 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e418p+8L : inexact-ok += log10 upward ldbl-128 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e418p+8L : inexact-ok += log10 downward ldbl-128ibm 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e48p+8L : inexact-ok += log10 tonearest ldbl-128ibm 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e4p+8L : inexact-ok += log10 towardzero ldbl-128ibm 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e4p+8L : inexact-ok += log10 upward ldbl-128ibm 0x4p-1076L : -0x1.434e6420f4373e5f05171d19e4p+8L : inexact-ok += log10 downward ldbl-96-intel 0x8p-16448L : -0x1.35670330851ff3a2p+12L : inexact-ok += log10 tonearest ldbl-96-intel 0x8p-16448L : -0x1.35670330851ff3a2p+12L : inexact-ok += log10 towardzero ldbl-96-intel 0x8p-16448L : -0x1.35670330851ff3ap+12L : inexact-ok += log10 upward ldbl-96-intel 0x8p-16448L : -0x1.35670330851ff3ap+12L : inexact-ok += log10 downward ldbl-96-m68k 0x8p-16448L : -0x1.35670330851ff3a2p+12L : inexact-ok += log10 tonearest ldbl-96-m68k 0x8p-16448L : -0x1.35670330851ff3a2p+12L : inexact-ok += log10 towardzero ldbl-96-m68k 0x8p-16448L : -0x1.35670330851ff3ap+12L : inexact-ok += log10 upward ldbl-96-m68k 0x8p-16448L : -0x1.35670330851ff3ap+12L : inexact-ok += log10 downward ldbl-128 0x8p-16448L : -0x1.35670330851ff3a119e4512b06efp+12L : inexact-ok += log10 tonearest ldbl-128 0x8p-16448L : -0x1.35670330851ff3a119e4512b06efp+12L : inexact-ok += log10 towardzero ldbl-128 0x8p-16448L : -0x1.35670330851ff3a119e4512b06eep+12L : inexact-ok += log10 upward ldbl-128 0x8p-16448L : -0x1.35670330851ff3a119e4512b06eep+12L : inexact-ok += log10 downward ldbl-96-m68k 0x4p-16448L : -0x1.356bd4355947d222p+12L : inexact-ok += log10 tonearest ldbl-96-m68k 0x4p-16448L : -0x1.356bd4355947d22p+12L : inexact-ok += log10 towardzero ldbl-96-m68k 0x4p-16448L : -0x1.356bd4355947d22p+12L : inexact-ok += log10 upward ldbl-96-m68k 0x4p-16448L : -0x1.356bd4355947d22p+12L : inexact-ok += log10 downward ldbl-128 0x4p-16448L : -0x1.356bd4355947d220d6a8cd75d45p+12L : inexact-ok += log10 tonearest ldbl-128 0x4p-16448L : -0x1.356bd4355947d220d6a8cd75d44fp+12L : inexact-ok += log10 towardzero ldbl-128 0x4p-16448L : -0x1.356bd4355947d220d6a8cd75d44fp+12L : inexact-ok += log10 upward ldbl-128 0x4p-16448L : -0x1.356bd4355947d220d6a8cd75d44fp+12L : inexact-ok += log10 downward ldbl-128 0x4p-16496L : -0x1.3653051d20c18a143b801b7c5661p+12L : inexact-ok += log10 tonearest ldbl-128 0x4p-16496L : -0x1.3653051d20c18a143b801b7c566p+12L : inexact-ok += log10 towardzero ldbl-128 0x4p-16496L : -0x1.3653051d20c18a143b801b7c566p+12L : inexact-ok += log10 upward ldbl-128 0x4p-16496L : -0x1.3653051d20c18a143b801b7c566p+12L : inexact-ok log1p 0 = log1p downward flt-32 0x0p+0f : 0x0p+0f : inexact-ok = log1p tonearest flt-32 0x0p+0f : 0x0p+0f : inexact-ok @@ -26719,6 +27035,322 @@ log1p -0.875 = log1p tonearest ldbl-128ibm -0xep-4L : -0x2.145647e7756e6d035dab1ac80cp+0L : inexact-ok = log1p towardzero ldbl-128ibm -0xep-4L : -0x2.145647e7756e6d035dab1ac80bp+0L : inexact-ok = log1p upward ldbl-128ibm -0xep-4L : -0x2.145647e7756e6d035dab1ac80bp+0L : inexact-ok +log1p min missing-underflow += log1p downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += log1p tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += log1p towardzero flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok += log1p upward flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok += log1p downward dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok += log1p tonearest dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += log1p towardzero dbl-64 0x4p-128 : 0x3.ffffffffffffep-128 : inexact-ok += log1p upward dbl-64 0x4p-128 : 0x4p-128 : inexact-ok += log1p downward ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128L : inexact-ok += log1p tonearest ldbl-96-intel 0x4p-128L : 0x4p-128L : inexact-ok += log1p towardzero ldbl-96-intel 0x4p-128L : 0x3.fffffffffffffffcp-128 |
