From 1a84c3d6d4bc43c92b6531b09d732e2e9c750dea Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 14 May 2014 12:38:56 +0000 Subject: Fix log1pl (LDBL_MAX) in FE_UPWARD mode (bug 16564). Bug 16564 is spurious overflow of log1pl (LDBL_MAX) in FE_UPWARD mode, resulting from log1pl adding 1 to its argument (for arguments not close to 0), which overflows in that mode. This patch fixes this by avoiding adding 1 to large arguments (precisely what counts as large depends on the floating-point format). Tested x86_64 and x86, and spot-checked log1pl tests on mips64 and powerpc64. [BZ #16564] * sysdeps/i386/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * sysdeps/ieee754/ldbl-128/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p113L or above. * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Do not add 1 to arguments 0x1p107L or above. * sysdeps/x86_64/fpu/s_log1pl.S (__log1pl): Do not add 1 to positive arguments with exponent 65 or above. * math/auto-libm-test-in: Add more tests of log1p. * math/auto-libm-test-out: Regenerated. --- math/auto-libm-test-in | 8 ++ math/auto-libm-test-out | 264 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 272 insertions(+) (limited to 'math') diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index da93a302cc..6edad5ad7e 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -1421,6 +1421,14 @@ log1p min missing-underflow log1p min_subnorm missing-underflow log1p -min missing-underflow log1p -min_subnorm missing-underflow +log1p 0x1p10 +log1p 0x1p20 +log1p 0x1p30 +log1p 0x1p50 +log1p 0x1p60 +log1p 0x1p100 +log1p 0x1p1000 +log1p max log2 1 log2 e diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out index a0d919a8bd..9885a55f3b 100644 --- a/math/auto-libm-test-out +++ b/math/auto-libm-test-out @@ -126288,6 +126288,270 @@ log1p -min_subnorm missing-underflow = log1p tonearest ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok = log1p towardzero ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok = log1p upward ldbl-128 -0x4p-16496L : -0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok +log1p 0x1p10 += log1p downward flt-32 0x4p+8f : 0x6.eeb4ep+0f : inexact-ok += log1p tonearest flt-32 0x4p+8f : 0x6.eeb4e8p+0f : inexact-ok += log1p towardzero flt-32 0x4p+8f : 0x6.eeb4ep+0f : inexact-ok += log1p upward flt-32 0x4p+8f : 0x6.eeb4e8p+0f : inexact-ok += log1p downward dbl-64 0x4p+8 : 0x6.eeb4e7af873p+0 : inexact-ok += log1p tonearest dbl-64 0x4p+8 : 0x6.eeb4e7af87304p+0 : inexact-ok += log1p towardzero dbl-64 0x4p+8 : 0x6.eeb4e7af873p+0 : inexact-ok += log1p upward dbl-64 0x4p+8 : 0x6.eeb4e7af87304p+0 : inexact-ok += log1p downward ldbl-96-intel 0x4p+8L : 0x6.eeb4e7af873022dp+0L : inexact-ok += log1p tonearest ldbl-96-intel 0x4p+8L : 0x6.eeb4e7af873022d8p+0L : inexact-ok += log1p towardzero ldbl-96-intel 0x4p+8L : 0x6.eeb4e7af873022dp+0L : inexact-ok += log1p upward ldbl-96-intel 0x4p+8L : 0x6.eeb4e7af873022d8p+0L : inexact-ok += log1p downward ldbl-96-m68k 0x4p+8L : 0x6.eeb4e7af873022dp+0L : inexact-ok += log1p tonearest ldbl-96-m68k 0x4p+8L : 0x6.eeb4e7af873022d8p+0L : inexact-ok += log1p towardzero ldbl-96-m68k 0x4p+8L : 0x6.eeb4e7af873022dp+0L : inexact-ok += log1p upward ldbl-96-m68k 0x4p+8L : 0x6.eeb4e7af873022d8p+0L : inexact-ok += log1p downward ldbl-128 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934c14p+0L : inexact-ok += log1p tonearest ldbl-128 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934c18p+0L : inexact-ok += log1p towardzero ldbl-128 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934c14p+0L : inexact-ok += log1p upward ldbl-128 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934c18p+0L : inexact-ok += log1p downward ldbl-128ibm 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934cp+0L : inexact-ok += log1p tonearest ldbl-128ibm 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934cp+0L : inexact-ok += log1p towardzero ldbl-128ibm 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934cp+0L : inexact-ok += log1p upward ldbl-128ibm 0x4p+8L : 0x6.eeb4e7af873022d55aeea4934ep+0L : inexact-ok +log1p 0x1p20 += log1p downward flt-32 0x1p+20f : 0xd.dce9ep+0f : inexact-ok += log1p tonearest flt-32 0x1p+20f : 0xd.dce9fp+0f : inexact-ok += log1p towardzero flt-32 0x1p+20f : 0xd.dce9ep+0f : inexact-ok += log1p upward flt-32 0x1p+20f : 0xd.dce9fp+0f : inexact-ok += log1p downward dbl-64 0x1p+20 : 0xd.dce9ef5c63b58p+0 : inexact-ok += log1p tonearest dbl-64 0x1p+20 : 0xd.dce9ef5c63b58p+0 : inexact-ok += log1p towardzero dbl-64 0x1p+20 : 0xd.dce9ef5c63b58p+0 : inexact-ok += log1p upward dbl-64 0x1p+20 : 0xd.dce9ef5c63b6p+0 : inexact-ok += log1p downward ldbl-96-intel 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p tonearest ldbl-96-intel 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p towardzero ldbl-96-intel 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p upward ldbl-96-intel 0x1p+20L : 0xd.dce9ef5c63b5818p+0L : inexact-ok += log1p downward ldbl-96-m68k 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p tonearest ldbl-96-m68k 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p towardzero ldbl-96-m68k 0x1p+20L : 0xd.dce9ef5c63b5817p+0L : inexact-ok += log1p upward ldbl-96-m68k 0x1p+20L : 0xd.dce9ef5c63b5818p+0L : inexact-ok += log1p downward ldbl-128 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a78p+0L : inexact-ok += log1p tonearest ldbl-128 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a78p+0L : inexact-ok += log1p towardzero ldbl-128 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a78p+0L : inexact-ok += log1p upward ldbl-128 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a788p+0L : inexact-ok += log1p downward ldbl-128ibm 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a4p+0L : inexact-ok += log1p tonearest ldbl-128ibm 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a8p+0L : inexact-ok += log1p towardzero ldbl-128ibm 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a4p+0L : inexact-ok += log1p upward ldbl-128ibm 0x1p+20L : 0xd.dce9ef5c63b581711b1f1d35a8p+0L : inexact-ok +log1p 0x1p30 += log1p downward flt-32 0x4p+28f : 0x1.4cb5ecp+4f : inexact-ok += log1p tonearest flt-32 0x4p+28f : 0x1.4cb5ecp+4f : inexact-ok += log1p towardzero flt-32 0x4p+28f : 0x1.4cb5ecp+4f : inexact-ok += log1p upward flt-32 0x4p+28f : 0x1.4cb5eep+4f : inexact-ok += log1p downward dbl-64 0x4p+28 : 0x1.4cb5ecf0e965p+4 : inexact-ok += log1p tonearest dbl-64 0x4p+28 : 0x1.4cb5ecf0e965p+4 : inexact-ok += log1p towardzero dbl-64 0x4p+28 : 0x1.4cb5ecf0e965p+4 : inexact-ok += log1p upward dbl-64 0x4p+28 : 0x1.4cb5ecf0e9651p+4 : inexact-ok += log1p downward ldbl-96-intel 0x4p+28L : 0x1.4cb5ecf0e965042p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0x4p+28L : 0x1.4cb5ecf0e9650422p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0x4p+28L : 0x1.4cb5ecf0e965042p+4L : inexact-ok += log1p upward ldbl-96-intel 0x4p+28L : 0x1.4cb5ecf0e9650422p+4L : inexact-ok += log1p downward ldbl-96-m68k 0x4p+28L : 0x1.4cb5ecf0e965042p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0x4p+28L : 0x1.4cb5ecf0e9650422p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0x4p+28L : 0x1.4cb5ecf0e965042p+4L : inexact-ok += log1p upward ldbl-96-m68k 0x4p+28L : 0x1.4cb5ecf0e9650422p+4L : inexact-ok += log1p downward ldbl-128 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5cbcp+4L : inexact-ok += log1p tonearest ldbl-128 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5cbdp+4L : inexact-ok += log1p towardzero ldbl-128 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5cbcp+4L : inexact-ok += log1p upward ldbl-128 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5cbdp+4L : inexact-ok += log1p downward ldbl-128ibm 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5c8p+4L : inexact-ok += log1p tonearest ldbl-128ibm 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5c8p+4L : inexact-ok += log1p towardzero ldbl-128ibm 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5c8p+4L : inexact-ok += log1p upward ldbl-128ibm 0x4p+28L : 0x1.4cb5ecf0e96504219a8af0be5dp+4L : inexact-ok +log1p 0x1p50 += log1p downward flt-32 0x4p+48f : 0x2.2a8488p+4f : inexact-ok += log1p tonearest flt-32 0x4p+48f : 0x2.2a848cp+4f : inexact-ok += log1p towardzero flt-32 0x4p+48f : 0x2.2a8488p+4f : inexact-ok += log1p upward flt-32 0x4p+48f : 0x2.2a848cp+4f : inexact-ok += log1p downward dbl-64 0x4p+48 : 0x2.2a848ae66fa86p+4 : inexact-ok += log1p tonearest dbl-64 0x4p+48 : 0x2.2a848ae66fa86p+4 : inexact-ok += log1p towardzero dbl-64 0x4p+48 : 0x2.2a848ae66fa86p+4 : inexact-ok += log1p upward dbl-64 0x4p+48 : 0x2.2a848ae66fa88p+4 : inexact-ok += log1p downward ldbl-96-intel 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p upward ldbl-96-intel 0x4p+48L : 0x2.2a848ae66fa8603cp+4L : inexact-ok += log1p downward ldbl-96-m68k 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0x4p+48L : 0x2.2a848ae66fa86038p+4L : inexact-ok += log1p upward ldbl-96-m68k 0x4p+48L : 0x2.2a848ae66fa8603cp+4L : inexact-ok += log1p downward ldbl-128 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bd6p+4L : inexact-ok += log1p tonearest ldbl-128 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bd8p+4L : inexact-ok += log1p towardzero ldbl-128 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bd6p+4L : inexact-ok += log1p upward ldbl-128 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bd8p+4L : inexact-ok += log1p downward ldbl-128ibm 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bp+4L : inexact-ok += log1p tonearest ldbl-128ibm 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0cp+4L : inexact-ok += log1p towardzero ldbl-128ibm 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0bp+4L : inexact-ok += log1p upward ldbl-128ibm 0x4p+48L : 0x2.2a848ae66fa86038d6e7913b0cp+4L : inexact-ok +log1p 0x1p60 += log1p downward flt-32 0x1p+60f : 0x2.996bd8p+4f : inexact-ok += log1p tonearest flt-32 0x1p+60f : 0x2.996bd8p+4f : inexact-ok += log1p towardzero flt-32 0x1p+60f : 0x2.996bd8p+4f : inexact-ok += log1p upward flt-32 0x1p+60f : 0x2.996bdcp+4f : inexact-ok += log1p downward dbl-64 0x1p+60 : 0x2.996bd9e152cap+4 : inexact-ok += log1p tonearest dbl-64 0x1p+60 : 0x2.996bd9e152cap+4 : inexact-ok += log1p towardzero dbl-64 0x1p+60 : 0x2.996bd9e152cap+4 : inexact-ok += log1p upward dbl-64 0x1p+60 : 0x2.996bd9e152ca2p+4 : inexact-ok += log1p downward ldbl-96-intel 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p upward ldbl-96-intel 0x1p+60L : 0x2.996bd9e152ca0848p+4L : inexact-ok += log1p downward ldbl-96-m68k 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0x1p+60L : 0x2.996bd9e152ca0844p+4L : inexact-ok += log1p upward ldbl-96-m68k 0x1p+60L : 0x2.996bd9e152ca0848p+4L : inexact-ok += log1p downward ldbl-128 0x1p+60L : 0x2.996bd9e152ca08453515e17a0ecep+4L : inexact-ok += log1p tonearest ldbl-128 0x1p+60L : 0x2.996bd9e152ca08453515e17a0edp+4L : inexact-ok += log1p towardzero ldbl-128 0x1p+60L : 0x2.996bd9e152ca08453515e17a0ecep+4L : inexact-ok += log1p upward ldbl-128 0x1p+60L : 0x2.996bd9e152ca08453515e17a0edp+4L : inexact-ok += log1p downward ldbl-128ibm 0x1p+60L : 0x2.996bd9e152ca08453515e17a0ep+4L : inexact-ok += log1p tonearest ldbl-128ibm 0x1p+60L : 0x2.996bd9e152ca08453515e17a0fp+4L : inexact-ok += log1p towardzero ldbl-128ibm 0x1p+60L : 0x2.996bd9e152ca08453515e17a0ep+4L : inexact-ok += log1p upward ldbl-128ibm 0x1p+60L : 0x2.996bd9e152ca08453515e17a0fp+4L : inexact-ok +log1p 0x1p100 += log1p downward flt-32 0x1p+100f : 0x4.55091p+4f : inexact-ok += log1p tonearest flt-32 0x1p+100f : 0x4.550918p+4f : inexact-ok += log1p towardzero flt-32 0x1p+100f : 0x4.55091p+4f : inexact-ok += log1p upward flt-32 0x1p+100f : 0x4.550918p+4f : inexact-ok += log1p downward dbl-64 0x1p+100 : 0x4.550915ccdf508p+4 : inexact-ok += log1p tonearest dbl-64 0x1p+100 : 0x4.550915ccdf50cp+4 : inexact-ok += log1p towardzero dbl-64 0x1p+100 : 0x4.550915ccdf508p+4 : inexact-ok += log1p upward dbl-64 0x1p+100 : 0x4.550915ccdf50cp+4 : inexact-ok += log1p downward ldbl-96-intel 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p upward ldbl-96-intel 0x1p+100L : 0x4.550915ccdf50b878p+4L : inexact-ok += log1p downward ldbl-96-m68k 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0x1p+100L : 0x4.550915ccdf50b87p+4L : inexact-ok += log1p upward ldbl-96-m68k 0x1p+100L : 0x4.550915ccdf50b878p+4L : inexact-ok += log1p downward ldbl-128 0x1p+100L : 0x4.550915ccdf50b871adcf227619acp+4L : inexact-ok += log1p tonearest ldbl-128 0x1p+100L : 0x4.550915ccdf50b871adcf227619bp+4L : inexact-ok += log1p towardzero ldbl-128 0x1p+100L : 0x4.550915ccdf50b871adcf227619acp+4L : inexact-ok += log1p upward ldbl-128 0x1p+100L : 0x4.550915ccdf50b871adcf227619bp+4L : inexact-ok += log1p downward ldbl-128ibm 0x1p+100L : 0x4.550915ccdf50b871adcf227618p+4L : inexact-ok += log1p tonearest ldbl-128ibm 0x1p+100L : 0x4.550915ccdf50b871adcf22761ap+4L : inexact-ok += log1p towardzero ldbl-128ibm 0x1p+100L : 0x4.550915ccdf50b871adcf227618p+4L : inexact-ok += log1p upward ldbl-128ibm 0x1p+100L : 0x4.550915ccdf50b871adcf22761ap+4L : inexact-ok +log1p 0x1p1000 += log1p downward flt-32 0xf.fffffp+124f : 0x5.8b90b8p+4f : inexact-ok += log1p tonearest flt-32 0xf.fffffp+124f : 0x5.8b90cp+4f : inexact-ok += log1p towardzero flt-32 0xf.fffffp+124f : 0x5.8b90b8p+4f : inexact-ok += log1p upward flt-32 0xf.fffffp+124f : 0x5.8b90cp+4f : inexact-ok += log1p downward dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p tonearest dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p towardzero dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p upward dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7cp+4 : inexact-ok += log1p downward ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p upward ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p downward ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p upward ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p downward ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac64p+4L : inexact-ok += log1p tonearest ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac644p+4L : inexact-ok += log1p towardzero ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac64p+4L : inexact-ok += log1p upward ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac644p+4L : inexact-ok += log1p downward ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p tonearest ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p towardzero ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p upward ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac8p+4L : inexact-ok += log1p downward dbl-64 0x1p+1000 : 0x2.b525ada00b926p+8 : inexact-ok += log1p tonearest dbl-64 0x1p+1000 : 0x2.b525ada00b928p+8 : inexact-ok += log1p towardzero dbl-64 0x1p+1000 : 0x2.b525ada00b926p+8 : inexact-ok += log1p upward dbl-64 0x1p+1000 : 0x2.b525ada00b928p+8 : inexact-ok += log1p downward ldbl-96-intel 0x1p+1000L : 0x2.b525ada00b927344p+8L : inexact-ok += log1p tonearest ldbl-96-intel 0x1p+1000L : 0x2.b525ada00b927348p+8L : inexact-ok += log1p towardzero ldbl-96-intel 0x1p+1000L : 0x2.b525ada00b927344p+8L : inexact-ok += log1p upward ldbl-96-intel 0x1p+1000L : 0x2.b525ada00b927348p+8L : inexact-ok += log1p downward ldbl-96-m68k 0x1p+1000L : 0x2.b525ada00b927344p+8L : inexact-ok += log1p tonearest ldbl-96-m68k 0x1p+1000L : 0x2.b525ada00b927348p+8L : inexact-ok += log1p towardzero ldbl-96-m68k 0x1p+1000L : 0x2.b525ada00b927344p+8L : inexact-ok += log1p upward ldbl-96-m68k 0x1p+1000L : 0x2.b525ada00b927348p+8L : inexact-ok += log1p downward ldbl-128 0x1p+1000L : 0x2.b525ada00b9273470ca17589cf6cp+8L : inexact-ok += log1p tonearest ldbl-128 0x1p+1000L : 0x2.b525ada00b9273470ca17589cf6ep+8L : inexact-ok += log1p towardzero ldbl-128 0x1p+1000L : 0x2.b525ada00b9273470ca17589cf6cp+8L : inexact-ok += log1p upward ldbl-128 0x1p+1000L : 0x2.b525ada00b9273470ca17589cf6ep+8L : inexact-ok += log1p downward ldbl-128ibm 0x1p+1000L : 0x2.b525ada00b9273470ca17589cfp+8L : inexact-ok += log1p tonearest ldbl-128ibm 0x1p+1000L : 0x2.b525ada00b9273470ca17589cfp+8L : inexact-ok += log1p towardzero ldbl-128ibm 0x1p+1000L : 0x2.b525ada00b9273470ca17589cfp+8L : inexact-ok += log1p upward ldbl-128ibm 0x1p+1000L : 0x2.b525ada00b9273470ca17589dp+8L : inexact-ok +log1p max += log1p downward flt-32 0xf.fffffp+124f : 0x5.8b90b8p+4f : inexact-ok += log1p tonearest flt-32 0xf.fffffp+124f : 0x5.8b90cp+4f : inexact-ok += log1p towardzero flt-32 0xf.fffffp+124f : 0x5.8b90b8p+4f : inexact-ok += log1p upward flt-32 0xf.fffffp+124f : 0x5.8b90cp+4f : inexact-ok += log1p downward dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p tonearest dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p towardzero dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7bcp+4 : inexact-ok += log1p upward dbl-64 0xf.fffffp+124 : 0x5.8b90bfae8e7cp+4 : inexact-ok += log1p downward ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p tonearest ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p towardzero ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p upward ldbl-96-intel 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p downward ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p tonearest ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p towardzero ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc558p+4L : inexact-ok += log1p upward ldbl-96-m68k 0xf.fffffp+124L : 0x5.8b90bfae8e7bc56p+4L : inexact-ok += log1p downward ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac64p+4L : inexact-ok += log1p tonearest ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac644p+4L : inexact-ok += log1p towardzero ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac64p+4L : inexact-ok += log1p upward ldbl-128 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac644p+4L : inexact-ok += log1p downward ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p tonearest ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p towardzero ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac6p+4L : inexact-ok += log1p upward ldbl-128ibm 0xf.fffffp+124L : 0x5.8b90bfae8e7bc55e4f18476ac8p+4L : inexact-ok += log1p downward dbl-64 0xf.ffffffffffff8p+1020 : 0x2.c5c85fdf473dep+8 : inexact-ok += log1p tonearest dbl-64 0xf.ffffffffffff8p+1020 : 0x2.c5c85fdf473dep+8 : inexact-ok += log1p towardzero dbl-64 0xf.ffffffffffff8p+1020 : 0x2.c5c85fdf473dep+8 : inexact-ok += log1p upward dbl-64 0xf.ffffffffffff8p+1020 : 0x2.c5c85fdf473ep+8 : inexact-ok += log1p downward ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a4p+8L : inexact-ok += log1p tonearest ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a8p+8L : inexact-ok += log1p towardzero ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a4p+8L : inexact-ok += log1p upward ldbl-96-intel 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a8p+8L : inexact-ok += log1p downward ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a4p+8L : inexact-ok += log1p tonearest ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a8p+8L : inexact-ok += log1p towardzero ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a4p+8L : inexact-ok += log1p upward ldbl-96-m68k 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a8p+8L : inexact-ok += log1p downward ldbl-128 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fcap+8L : inexact-ok += log1p tonearest ldbl-128 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fccp+8L : inexact-ok += log1p towardzero ldbl-128 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fcap+8L : inexact-ok += log1p upward ldbl-128 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fccp+8L : inexact-ok += log1p downward ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fp+8L : inexact-ok += log1p tonearest ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece601p+8L : inexact-ok += log1p towardzero ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece600fp+8L : inexact-ok += log1p upward ldbl-128ibm 0xf.ffffffffffff8p+1020L : 0x2.c5c85fdf473de6a7278ece601p+8L : inexact-ok += log1p downward ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6acp+12L : inexact-ok += log1p tonearest ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6bp+12L : inexact-ok += log1p towardzero ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6acp+12L : inexact-ok += log1p upward ldbl-96-intel 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6bp+12L : inexact-ok += log1p downward ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6acp+12L : inexact-ok += log1p tonearest ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6bp+12L : inexact-ok += log1p towardzero ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6acp+12L : inexact-ok += log1p upward ldbl-96-m68k 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6bp+12L : inexact-ok += log1p downward ldbl-128 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6af277ece600fcap+12L : inexact-ok += log1p tonearest ldbl-128 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6af277ece600fccp+12L : inexact-ok += log1p towardzero ldbl-128 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6af277ece600fcap+12L : inexact-ok += log1p upward ldbl-128 0xf.fffffffffffffffp+16380L : 0x2.c5c85fdf473de6af277ece600fccp+12L : inexact-ok += log1p downward ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x2.c5c85fdf473de6af278ece600fcap+12L : inexact-ok += log1p tonearest ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x2.c5c85fdf473de6af278ece600fccp+12L : inexact-ok += log1p towardzero ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x2.c5c85fdf473de6af278ece600fcap+12L : inexact-ok += log1p upward ldbl-128 0xf.fffffffffffffffffffffffffff8p+16380L : 0x2.c5c85fdf473de6af278ece600fccp+12L : inexact-ok += log1p downward ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fcap+8L : inexact-ok += log1p tonearest ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fccp+8L : inexact-ok += log1p towardzero ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fcap+8L : inexact-ok += log1p upward ldbl-128 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fccp+8L : inexact-ok += log1p downward ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fp+8L : inexact-ok += log1p tonearest ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece601p+8L : inexact-ok += log1p towardzero ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece600fp+8L : inexact-ok += log1p upward ldbl-128ibm 0xf.ffffffffffffbffffffffffffcp+1020L : 0x2.c5c85fdf473de6ab278ece601p+8L : inexact-ok log2 1 = log2 downward flt-32 0x1p+0f : 0x0p+0f : inexact-ok = log2 tonearest flt-32 0x1p+0f : 0x0p+0f : inexact-ok -- cgit 1.4.1