aboutsummaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-03-31 14:56:37 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-03-31 14:56:37 +0000
commit54fa2475d37b9c7afd903eb970362e50ec76f01e (patch)
tree7edfc5402ad7ae934fb27a9b132aaa7950d92262 /math
parent757d9dd5c3efa56fac75965abc014faaae7b7895 (diff)
downloadglibc-54fa2475d37b9c7afd903eb970362e50ec76f01e.tar.xz
glibc-54fa2475d37b9c7afd903eb970362e50ec76f01e.zip
Set errno for atan2 underflow (bug 16349).
This patch fixes bug 16349, missing errno setting for atan2 underflow, by adding appropriate checks to the existing wrappers. (As in other cases, the __kernel_standard support for calling matherr is considered to be for existing code expecting existing rules for what's considered an error, even if those don't correspond to a general logical scheme for what counts as what kind of error, so __set_errno calls are added directly without any changes to __kernel_standard.) Tested x86_64 and x86. [BZ #16349] * math/w_atan2.c: Include <errno.h>. (__atan2): Set errno for result underflowing to zero. * math/w_atan2f.c: Include <errno.h>. (__atan2f): Set errno for result underflowing to zero. * math/w_atan2l.c: Include <errno.h>. (__atan2l): Set errno for result underflowing to zero. * math/auto-libm-test-in: Don't allow missing errno for some atan2 tests. * math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in9
-rw-r--r--math/auto-libm-test-out1076
-rw-r--r--math/w_atan2.c8
-rw-r--r--math/w_atan2f.c8
-rw-r--r--math/w_atan2l.c8
5 files changed, 563 insertions, 546 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 7ad407c238..420f657d81 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -157,13 +157,12 @@ atan2 -min -max
atan2 min_subnorm -max
atan2 -min_subnorm -max
# Bug 15319: underflow exception may be missing.
-# Bug 16349: errno setting may be missing.
atan2 1 max missing-underflow
atan2 -1 max missing-underflow
-atan2 min max missing-underflow missing-errno
-atan2 -min max missing-underflow missing-errno
-atan2 min_subnorm max missing-underflow missing-errno
-atan2 -min_subnorm max missing-underflow missing-errno
+atan2 min max missing-underflow
+atan2 -min max missing-underflow
+atan2 min_subnorm max missing-underflow
+atan2 -min_subnorm max missing-underflow
atanh 0
atanh -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 64dc911e97..4a56804e3d 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -12480,10 +12480,10 @@ atan2 -1 max missing-underflow
= atan2 tonearest ldbl-128ibm -0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : -0x1p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 towardzero ldbl-128ibm -0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : -0x1p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 upward ldbl-128ibm -0x1p+0L 0xf.ffffffffffffbffffffffffffcp+1020L : -0x1p-1024L : inexact-ok underflow underflow-ok errno-erange-ok
-atan2 min max missing-underflow missing-errno
-= atan2 downward flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+atan2 min max missing-underflow
+= atan2 downward flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero flt-32 0x4p-128f 0xf.fffffp+124f : 0x0p+0f : inexact-ok underflow underflow-ok errno-erange
= atan2 upward flt-32 0x4p-128f 0xf.fffffp+124f : 0x8p-152f : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward dbl-64 0x4p-128 0xf.fffffp+124 : 0x4.000004000004p-256 : inexact-ok
= atan2 tonearest dbl-64 0x4p-128 0xf.fffffp+124 : 0x4.000004000004p-256 : inexact-ok
@@ -12505,9 +12505,9 @@ atan2 min max missing-underflow missing-errno
= atan2 tonearest ldbl-128ibm 0x4p-128L 0xf.fffffp+124L : 0x4.000004000004000004000004p-256L : inexact-ok
= atan2 towardzero ldbl-128ibm 0x4p-128L 0xf.fffffp+124L : 0x4.000004000004000004000004p-256L : inexact-ok
= atan2 upward ldbl-128ibm 0x4p-128L 0xf.fffffp+124L : 0x4.00000400000400000400000402p-256L : inexact-ok
-= atan2 downward dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
= atan2 upward dbl-64 0x4p-128 0xf.ffffffffffff8p+1020 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward ldbl-96-intel 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002p-1152L : inexact-ok
= atan2 tonearest ldbl-96-intel 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002p-1152L : inexact-ok
@@ -12521,37 +12521,37 @@ atan2 min max missing-underflow missing-errno
= atan2 tonearest ldbl-128 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4.00000000000020000000000001p-1152L : inexact-ok
= atan2 towardzero ldbl-128 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4.00000000000020000000000001p-1152L : inexact-ok
= atan2 upward ldbl-128 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002000000000000104p-1152L : inexact-ok
-= atan2 downward ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128ibm 0x4p-128L 0xf.ffffffffffff8p+1020L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-intel 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-m68k 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-128L 0xf.fffffffffffffffp+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-128L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward ldbl-128 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-1152L : inexact-ok
= atan2 tonearest ldbl-128 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-1152L : inexact-ok
= atan2 towardzero ldbl-128 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-1152L : inexact-ok
= atan2 upward ldbl-128 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.0000000000001000000000000144p-1152L : inexact-ok
-= atan2 downward ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128ibm 0x4p-128L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero dbl-64 0x4p-1024 0xf.fffffp+124 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
= atan2 upward dbl-64 0x4p-1024 0xf.fffffp+124 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward ldbl-96-intel 0x4p-1024L 0xf.fffffp+124L : 0x4.000004000004p-1152L : inexact-ok
= atan2 tonearest ldbl-96-intel 0x4p-1024L 0xf.fffffp+124L : 0x4.000004000004p-1152L : inexact-ok
@@ -12565,13 +12565,13 @@ atan2 min max missing-underflow missing-errno
= atan2 tonearest ldbl-128 0x4p-1024L 0xf.fffffp+124L : 0x4.000004000004000004000004p-1152L : inexact-ok
= atan2 towardzero ldbl-128 0x4p-1024L 0xf.fffffp+124L : 0x4.000004000004000004000004p-1152L : inexact-ok
= atan2 upward ldbl-128 0x4p-1024L 0xf.fffffp+124L : 0x4.0000040000040000040000040004p-1152L : inexact-ok
-= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128ibm 0x4p-1024L 0xf.fffffp+124L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x0p+0 : inexact-ok underflow underflow-ok errno-erange
= atan2 upward dbl-64 0x4p-1024 0xf.ffffffffffff8p+1020 : 0x4p-1076 : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward ldbl-96-intel 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002p-2048L : inexact-ok
= atan2 tonearest ldbl-96-intel 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002p-2048L : inexact-ok
@@ -12585,125 +12585,125 @@ atan2 min max missing-underflow missing-errno
= atan2 tonearest ldbl-128 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4.00000000000020000000000001p-2048L : inexact-ok
= atan2 towardzero ldbl-128 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4.00000000000020000000000001p-2048L : inexact-ok
= atan2 upward ldbl-128 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4.0000000000002000000000000104p-2048L : inexact-ok
-= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffff8p+1020L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-intel 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-m68k 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-1024L 0xf.fffffffffffffffp+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-1024L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
= atan2 downward ldbl-128 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-2048L : inexact-ok
= atan2 tonearest ldbl-128 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-2048L : inexact-ok
= atan2 towardzero ldbl-128 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.000000000000100000000000014p-2048L : inexact-ok
= atan2 upward ldbl-128 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4.0000000000001000000000000144p-2048L : inexact-ok
-= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128ibm 0x4p-1024L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x4p-1076L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-intel 0x4p-16384L 0xf.fffffp+124L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-m68k 0x4p-16384L 0xf.fffffp+124L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-16384L 0xf.fffffp+124L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-intel 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-m68k 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-16384L 0xf.ffffffffffff8p+1020L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-intel 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x8p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-96-m68k 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x4p-16448L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-16384L 0xf.fffffffffffffffp+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 tonearest ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
+= atan2 towardzero ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange
= atan2 upward ldbl-128 0x4p-16384L 0xf.fffffffffffffffffffffffffff8p+16380L : 0x4p-16496L : inexact-ok underflow underflow-ok errno-erange-ok
-= atan2 downward ldbl-128 0x4p-16384L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 tonearest ldbl-128 0x4p-16384L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
-= atan2 towardzero ldbl-128 0x4p-16384L 0xf.ffffffffffffbffffffffffffcp+1020L : 0x0p+0L : inexact-ok underflow underflow-ok errno-erange errno-erange-ok
+= atan2 downward ldbl-128 0x4p-16384L 0xf.ffffffffffffbffffffffffffcp+1020