diff options
| author | Joseph Myers <josmyers@redhat.com> | 2024-06-17 13:48:13 +0000 |
|---|---|---|
| committer | Joseph Myers <josmyers@redhat.com> | 2024-06-17 13:48:13 +0000 |
| commit | 55eb99e9a9d840ba452b128be14d6529c2dde039 (patch) | |
| tree | 6810f148fb04ca7217c67aa3f2e10b72d86a8d2d /math | |
| parent | bb014f50c4a0c8d8db1ba5af55c104e430b5533d (diff) | |
| download | glibc-55eb99e9a9d840ba452b128be14d6529c2dde039.tar.xz glibc-55eb99e9a9d840ba452b128be14d6529c2dde039.zip | |
Implement C23 log10p1
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the log10p1 functions (log10(1+x): like log1p, but for
base-10 logarithms).
This is directly analogous to the log2p1 implementation (except that
whereas log2p1 has a smaller underflow range than log1p, log10p1 has a
larger underflow range). The test inputs are copied from those for
log1p and log2p1, plus a few more inputs in that wider underflow
range.
Tested for x86_64 and x86, and with build-many-glibcs.py.
Diffstat (limited to 'math')
| -rw-r--r-- | math/Makefile | 6 | ||||
| -rw-r--r-- | math/Versions | 2 | ||||
| -rw-r--r-- | math/auto-libm-test-in | 57 | ||||
| -rw-r--r-- | math/auto-libm-test-out-log10p1 | 3063 | ||||
| -rw-r--r-- | math/bits/mathcalls.h | 3 | ||||
| -rw-r--r-- | math/gen-auto-libm-tests.c | 1 | ||||
| -rwxr-xr-x | math/gen-tgmath-tests.py | 1 | ||||
| -rw-r--r-- | math/libm-test-log10p1.inc | 53 | ||||
| -rw-r--r-- | math/s_log10p1_template.c | 49 | ||||
| -rw-r--r-- | math/test-tgmath.c | 12 | ||||
| -rw-r--r-- | math/tgmath.h | 3 |
11 files changed, 3249 insertions, 1 deletions
diff --git a/math/Makefile b/math/Makefile index c55976cba8..95085d9601 100644 --- a/math/Makefile +++ b/math/Makefile @@ -127,6 +127,7 @@ gen-libm-calls = \ s_fminimum_numF \ s_fminmagF \ s_iseqsigF \ + s_log10p1F \ s_log2p1F \ s_nanF \ s_nextdownF \ @@ -651,6 +652,7 @@ libm-test-funcs-auto = \ lgamma \ log \ log10 \ + log10p1 \ log1p \ log2 \ log2p1 \ @@ -962,6 +964,7 @@ tgmath3-macros = \ llround \ log \ log10 \ + log10p1 \ log1p \ log2 \ log2p1 \ @@ -1376,6 +1379,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintl CFLAGS-s_llround.c += -fno-builtin-llroundl CFLAGS-e_log.c += -fno-builtin-logl CFLAGS-w_log10.c += -fno-builtin-log10l +CFLAGS-s_log10p1.c += -fno-builtin-log10p1l CFLAGS-w_log1p.c += -fno-builtin-log1pl -fno-builtin-logp1l CFLAGS-e_log2.c += -fno-builtin-log2l CFLAGS-s_log2p1.c += -fno-builtin-log2p1l @@ -1502,6 +1506,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintf32x -fno-builtin-llrintf64 CFLAGS-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64 CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64 CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64 +CFLAGS-s_log10p1.c += -fno-builtin-log10p1f32x -fno-builtin-log10p1f64 CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 -fno-builtin-logp1f32x -fno-builtin-logp1f64 CFLAGS-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64 CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64 @@ -1617,6 +1622,7 @@ CFLAGS-s_llrintf.c += -fno-builtin-llrintf32 CFLAGS-s_llroundf.c += -fno-builtin-llroundf32 CFLAGS-e_logf.c += -fno-builtin-logf32 CFLAGS-w_log10f.c += -fno-builtin-log10f32 +CFLAGS-s_log10p1f.c += -fno-builtin-log10p1f32 CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 -fno-builtin-logp1f32 CFLAGS-e_log2f.c += -fno-builtin-log2f32 CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32 diff --git a/math/Versions b/math/Versions index f6ddd2f4f7..633722f8c6 100644 --- a/math/Versions +++ b/math/Versions @@ -642,9 +642,11 @@ libm { GLIBC_2.40 { # Functions not involving _Float64x or _Float128, for all configurations. log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x; + log10p1; log10p1f; log10p1l; log10p1f32; log10p1f64; log10p1f32x; logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x; # Functions involving _Float64x or _Float128, for some configurations. log2p1f64x; log2p1f128; + log10p1f64x; log10p1f128; logp1f64x; logp1f128; } } diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 8982338b3a..16b1d3e0c6 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -6576,6 +6576,63 @@ log10 0x9.b3727e3feb538p-4 log10 0xf.bf1b2p-4 log10 0x1.6b5f7ap+96 +log10p1 0 +log10p1 -0 +log10p1 e-1 +log10p1 -0.25 +log10p1 -0.875 +log10p1 0x1p-5 +log10p1 0x1p-10 +log10p1 0x1p-15 +log10p1 0x1p-20 +log10p1 0x1p-25 +log10p1 0x1p-30 +log10p1 0x1p-35 +log10p1 0x1p-40 +log10p1 0x1p-45 +log10p1 0x1p-50 +log10p1 0x1p-55 +log10p1 0x1p-60 +log10p1 0x1p-100 +log10p1 0x1p-600 +log10p1 0x1p-10000 +log10p1 min +log10p1 min_subnorm +log10p1 -min +log10p1 -min_subnorm +log10p1 0x1p10 +log10p1 0x1p20 +log10p1 0x1p30 +log10p1 0x1p50 +log10p1 0x1p60 +log10p1 0x1p100 +log10p1 0x1p1000 +log10p1 0x6.a0cf42befce9ed4085ef59254b48p-4 +log10p1 max +log10p1 0x1p-125 +log10p1 0x1p-1021 +log10p1 0x1p-16381 +log10p1 -0x1p-125 +log10p1 -0x1p-1021 +log10p1 -0x1p-16381 + +log10p1 0x7.2a4368p-4 +log10p1 0x6.d3a118p-4 +log10p1 0x5.03f228p+0 +log10p1 0x7.264963888ac9p-4 +log10p1 0x8.786bdp-4 +log10p1 0x7.89dc17790eeb4p-4 +log10p1 0x9.81ccf8887c24a7bp-4 +log10p1 0xa.5028608bd65f38dp-4 +log10p1 0x5.bf78873e20a2d468p-4 +log10p1 0x7.aa5198p-4 +log10p1 0x2.564fap+0 +log10p1 0x7.fc242a2235222ef8p-4 +log10p1 -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4 +log10p1 0x7.2eca50c4d93196362b4f37f6e8dcp-4 +log10p1 -0x6.3fef3067427e43dfcde9e48f74bcp-4 +log10p1 0x6.af53d00fd2845d4772260ef5adc4p-4 + log1p 0 log1p -0 no-mathvec log1p e-1 diff --git a/math/auto-libm-test-out-log10p1 b/math/auto-libm-test-out-log10p1 new file mode 100644 index 0000000000..3102161374 --- /dev/null +++ b/math/auto-libm-test-out-log10p1 @@ -0,0 +1,3063 @@ +log10p1 0 += log10p1 downward binary32 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest binary32 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero binary32 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward binary32 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 downward binary64 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest binary64 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero binary64 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward binary64 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 downward intel96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest intel96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero intel96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward intel96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 downward m68k96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest m68k96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero m68k96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward m68k96 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 downward binary128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest binary128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero binary128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward binary128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 downward ibm128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok += log10p1 upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok +log10p1 -0 += log10p1 downward binary32 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest binary32 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero binary32 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward binary32 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 downward binary64 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest binary64 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero binary64 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward binary64 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 downward intel96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest intel96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero intel96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward intel96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 downward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest m68k96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero m68k96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 downward binary128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest binary128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero binary128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward binary128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 downward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 tonearest ibm128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 towardzero ibm128 -0x0p+0 : -0x0p+0 : inexact-ok += log10p1 upward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok +log10p1 e-1 += log10p1 downward binary32 0x1.b7e152p+0 : 0x6.f2decp-4 : inexact-ok += log10p1 tonearest binary32 0x1.b7e152p+0 : 0x6.f2dec8p-4 : inexact-ok += log10p1 towardzero binary32 0x1.b7e152p+0 : 0x6.f2decp-4 : inexact-ok += log10p1 upward binary32 0x1.b7e152p+0 : 0x6.f2dec8p-4 : inexact-ok += log10p1 downward binary64 0x1.b7e152p+0 : 0x6.f2dec6dc3adfp-4 : inexact-ok += log10p1 tonearest binary64 0x1.b7e152p+0 : 0x6.f2dec6dc3adfp-4 : inexact-ok += log10p1 towardzero binary64 0x1.b7e152p+0 : 0x6.f2dec6dc3adfp-4 : inexact-ok += log10p1 upward binary64 0x1.b7e152p+0 : 0x6.f2dec6dc3adf4p-4 : inexact-ok += log10p1 downward intel96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3p-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c38p-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3p-4 : inexact-ok += log10p1 upward intel96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c38p-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3p-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c38p-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3p-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c38p-4 : inexact-ok += log10p1 downward binary128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874f6cp-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874f7p-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874f6cp-4 : inexact-ok += log10p1 upward binary128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874f7p-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874ep-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28875p-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28874ep-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e152p+0 : 0x6.f2dec6dc3adf1c3688ce28875p-4 : inexact-ok += log10p1 downward binary32 0x1.b7e15p+0 : 0x6.f2decp-4 : inexact-ok += log10p1 tonearest binary32 0x1.b7e15p+0 : 0x6.f2decp-4 : inexact-ok += log10p1 towardzero binary32 0x1.b7e15p+0 : 0x6.f2decp-4 : inexact-ok += log10p1 upward binary32 0x1.b7e15p+0 : 0x6.f2dec8p-4 : inexact-ok += log10p1 downward binary64 0x1.b7e15p+0 : 0x6.f2dec1bf69104p-4 : inexact-ok += log10p1 tonearest binary64 0x1.b7e15p+0 : 0x6.f2dec1bf69108p-4 : inexact-ok += log10p1 towardzero binary64 0x1.b7e15p+0 : 0x6.f2dec1bf69104p-4 : inexact-ok += log10p1 upward binary64 0x1.b7e15p+0 : 0x6.f2dec1bf69108p-4 : inexact-ok += log10p1 downward intel96 0x1.b7e15p+0 : 0x6.f2dec1bf69107298p-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e15p+0 : 0x6.f2dec1bf691072ap-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e15p+0 : 0x6.f2dec1bf69107298p-4 : inexact-ok += log10p1 upward intel96 0x1.b7e15p+0 : 0x6.f2dec1bf691072ap-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e15p+0 : 0x6.f2dec1bf69107298p-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e15p+0 : 0x6.f2dec1bf691072ap-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e15p+0 : 0x6.f2dec1bf69107298p-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e15p+0 : 0x6.f2dec1bf691072ap-4 : inexact-ok += log10p1 downward binary128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcf01cp-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcf01cp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcf01cp-4 : inexact-ok += log10p1 upward binary128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcf02p-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcfp-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcfp-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcfp-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e15p+0 : 0x6.f2dec1bf6910729e025b16fcf2p-4 : inexact-ok += log10p1 downward binary64 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9438p-4 : inexact-ok += log10p1 tonearest binary64 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9438p-4 : inexact-ok += log10p1 towardzero binary64 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9438p-4 : inexact-ok += log10p1 upward binary64 0x1.b7e151628aed3p+0 : 0x6.f2dec549b943cp-4 : inexact-ok += log10p1 downward intel96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439ae8p-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439afp-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439ae8p-4 : inexact-ok += log10p1 upward intel96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439afp-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439ae8p-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439afp-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439ae8p-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439afp-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63b28p-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63b2cp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63b28p-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63b2cp-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63ap-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63cp-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63ap-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed3p+0 : 0x6.f2dec549b9439aef3f7580a63cp-4 : inexact-ok += log10p1 downward binary64 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9434p-4 : inexact-ok += log10p1 tonearest binary64 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9438p-4 : inexact-ok += log10p1 towardzero binary64 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9434p-4 : inexact-ok += log10p1 upward binary64 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9438p-4 : inexact-ok += log10p1 downward intel96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 upward intel96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b943721p-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208p-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e151628aed2p+0 : 0x6.f2dec549b943721p-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad56p-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad564p-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad56p-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad564p-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad4p-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad6p-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad4p-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed2p+0 : 0x6.f2dec549b9437208b105fe9ad6p-4 : inexact-ok += log10p1 downward intel96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cbp-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 upward intel96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cbp-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cbp-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cbp-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc208p-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc20cp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc208p-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc20cp-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc2p-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc2p-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc2p-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed2a6cp+0 : 0x6.f2dec549b9438cacde4d208fc4p-4 : inexact-ok += log10p1 downward intel96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438cap-4 : inexact-ok += log10p1 tonearest intel96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 towardzero intel96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438cap-4 : inexact-ok += log10p1 upward intel96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 downward m68k96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438cap-4 : inexact-ok += log10p1 tonearest m68k96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 towardzero m68k96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438cap-4 : inexact-ok += log10p1 upward m68k96 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca8p-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f809cp-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f809cp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f809cp-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f80ap-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f8p-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f8p-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f8p-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed2a6ap+0 : 0x6.f2dec549b9438ca7c17b529f82p-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6abf7158809cf5p+0 : 0x6.f2dec549b9438ca9aadd557d699cp-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6abf7158809cf5p+0 : 0x6.f2dec549b9438ca9aadd557d69ap-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6abf7158809cf5p+0 : 0x6.f2dec549b9438ca9aadd557d699cp-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6abf7158809cf5p+0 : 0x6.f2dec549b9438ca9aadd557d69ap-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6abf7158809cf4p+0 : 0x6.f2dec549b9438ca9aadd557d699cp-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6abf7158809cf4p+0 : 0x6.f2dec549b9438ca9aadd557d699cp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6abf7158809cf4p+0 : 0x6.f2dec549b9438ca9aadd557d699cp-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6abf7158809cf4p+0 : 0x6.f2dec549b9438ca9aadd557d69ap-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d69b8p-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d69bcp-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d69b8p-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d69bcp-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d68p-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d6ap-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d68p-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed2a6abf7158809dp+0 : 0x6.f2dec549b9438ca9aadd557d6ap-4 : inexact-ok += log10p1 downward binary128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d687p-4 : inexact-ok += log10p1 tonearest binary128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d6874p-4 : inexact-ok += log10p1 towardzero binary128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d687p-4 : inexact-ok += log10p1 upward binary128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d6874p-4 : inexact-ok += log10p1 downward ibm128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d68p-4 : inexact-ok += log10p1 tonearest ibm128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d68p-4 : inexact-ok += log10p1 towardzero ibm128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d68p-4 : inexact-ok += log10p1 upward ibm128 0x1.b7e151628aed2a6abf7158809c8p+0 : 0x6.f2dec549b9438ca9aadd557d6ap-4 : inexact-ok +log10p1 -0.25 += log10p1 downward binary32 -0x4p-4 : -0x1.ffbfc4p-4 : inexact-ok += log10p1 tonearest binary32 -0x4p-4 : -0x1.ffbfc2p-4 : inexact-ok += log10p1 towardzero binary32 -0x4p-4 : -0x1.ffbfc2p-4 : inexact-ok += log10p1 upward binary32 -0x4p-4 : -0x1.ffbfc2p-4 : inexact-ok += log10p1 downward binary64 -0x4p-4 : -0x1.ffbfc2bbc7804p-4 : inexact-ok += log10p1 tonearest binary64 -0x4p-4 : -0x1.ffbfc2bbc7803p-4 : inexact-ok += log10p1 towardzero binary64 -0x4p-4 : -0x1.ffbfc2bbc7803p-4 : inexact-ok += log10p1 upward binary64 -0x4p-4 : -0x1.ffbfc2bbc7803p-4 : inexact-ok += log10p1 downward intel96 -0x4p-4 : -0x1.ffbfc2bbc780375ap-4 : inexact-ok += log10p1 tonearest intel96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 towardzero intel96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 upward intel96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 downward m68k96 -0x4p-4 : -0x1.ffbfc2bbc780375ap-4 : inexact-ok += log10p1 tonearest m68k96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 towardzero m68k96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 upward m68k96 -0x4p-4 : -0x1.ffbfc2bbc7803758p-4 : inexact-ok += log10p1 downward binary128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84f39p-4 : inexact-ok += log10p1 tonearest binary128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84f39p-4 : inexact-ok += log10p1 towardzero binary128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84f38p-4 : inexact-ok += log10p1 upward binary128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84f38p-4 : inexact-ok += log10p1 downward ibm128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84f8p-4 : inexact-ok += log10p1 tonearest ibm128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84fp-4 : inexact-ok += log10p1 towardzero ibm128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84fp-4 : inexact-ok += log10p1 upward ibm128 -0x4p-4 : -0x1.ffbfc2bbc780375837c4b0b84fp-4 : inexact-ok +log10p1 -0.875 += log10p1 downward binary32 -0xep-4 : -0xe.730e8p-4 : inexact-ok += log10p1 tonearest binary32 -0xep-4 : -0xe.730e8p-4 : inexact-ok += log10p1 towardzero binary32 -0xep-4 : -0xe.730e7p-4 : inexact-ok += log10p1 upward binary32 -0xep-4 : -0xe.730e7p-4 : inexact-ok += log10p1 downward binary64 -0xep-4 : -0xe.730e7c779b7f8p-4 : inexact-ok += log10p1 tonearest binary64 -0xep-4 : -0xe.730e7c779b7fp-4 : inexact-ok += log10p1 towardzero binary64 -0xep-4 : -0xe.730e7c779b7fp-4 : inexact-ok += log10p1 upward binary64 -0xep-4 : -0xe.730e7c779b7fp-4 : inexact-ok += log10p1 downward intel96 -0xep-4 : -0xe.730e7c779b7f365p-4 : inexact-ok += log10p1 tonearest intel96 -0xep-4 : -0xe.730e7c779b7f365p-4 : inexact-ok += log10p1 towardzero intel96 -0xep-4 : -0xe.730e7c779b7f364p-4 : inexact-ok += log10p1 upward intel96 -0xep-4 : -0xe.730e7c779b7f364p-4 : inexact-ok += log10p1 downward m68k96 -0xep-4 : -0xe.730e7c779b7f365p-4 : inexact-ok += log10p1 tonearest m68k96 -0xep-4 : -0xe.730e7c779b7f365p-4 : inexact-ok += log10p1 towardzero m68k96 -0xep-4 : -0xe.730e7c779b7f364p-4 : inexact-ok += log10p1 upward m68k96 -0xep-4 : -0xe.730e7c779b7f364p-4 : inexact-ok += log10p1 downward binary128 -0xep-4 : -0xe.730e7c779b7f364d74e0682113bp-4 : inexact-ok += log10p1 tonearest binary128 -0xep-4 : -0xe.730e7c779b7f364d74e0682113bp-4 : inexact-ok += log10p1 towardzero binary128 -0xep-4 : -0xe.730e7c779b7f364d74e0682113a8p-4 : inexact-ok += log10p1 upward binary128 -0xep-4 : -0xe.730e7c779b7f364d74e0682113a8p-4 : inexact-ok += log10p1 downward ibm128 -0xep-4 : -0xe.730e7c779b7f364d74e0682114p-4 : inexact-ok += log10p1 tonearest ibm128 -0xep-4 : -0xe.730e7c779b7f364d74e0682114p-4 : inexact-ok += log10p1 towardzero ibm128 -0xep-4 : -0xe.730e7c779b7f364d74e068211p-4 : inexact-ok += log10p1 upward ibm128 -0xep-4 : -0xe.730e7c779b7f364d74e068211p-4 : inexact-ok +log10p1 0x1p-5 += log10p1 downward binary32 0x8p-8 : 0x3.6bd21p-8 : inexact-ok += log10p1 tonearest binary32 0x8p-8 : 0x3.6bd21p-8 : inexact-ok += log10p1 towardzero binary32 0x8p-8 : 0x3.6bd21p-8 : inexact-ok += log10p1 upward binary32 0x8p-8 : 0x3.6bd214p-8 : inexact-ok += log10p1 downward binary64 0x8p-8 : 0x3.6bd211d626f2p-8 : inexact-ok += log10p1 tonearest binary64 0 |
