aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <josmyers@redhat.com>2024-12-11 21:51:49 +0000
committerJoseph Myers <josmyers@redhat.com>2024-12-11 21:51:49 +0000
commitffe79c446ced76d7c1a77804ff2cc32eccbc7c7e (patch)
treefa436fea1f0eebeb843ae0c16df84f120f859eb3
parentaec85b2557cdb2cc1fc726a50c33848826f00f4d (diff)
downloadglibc-ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e.zip
glibc-ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e.tar.gz
glibc-ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e.tar.bz2
Implement C23 atanpi
C23 adds various <math.h> function families originally defined in TS 18661-4. Add the atanpi functions (atan(x)/pi). Tested for x86_64 and x86, and with build-many-glibcs.py.
-rw-r--r--NEWS2
-rw-r--r--manual/math.texi14
-rw-r--r--math/Makefile6
-rw-r--r--math/Versions2
-rw-r--r--math/auto-libm-test-in40
-rw-r--r--math/auto-libm-test-out-atanpi1379
-rw-r--r--math/bits/mathcalls.h2
-rw-r--r--math/gen-auto-libm-tests.c1
-rwxr-xr-xmath/gen-tgmath-tests.py1
-rw-r--r--math/libm-test-atanpi.inc49
-rw-r--r--math/s_atanpi_template.c39
-rw-r--r--math/test-tgmath.c12
-rw-r--r--math/tgmath.h2
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps24
-rw-r--r--sysdeps/ieee754/ldbl-128ibm-compat/Versions1
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile2
-rw-r--r--sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c8
-rw-r--r--sysdeps/mach/hurd/i386/libm.abilist8
-rw-r--r--sysdeps/mach/hurd/x86_64/libm.abilist8
-rw-r--r--sysdeps/powerpc/nofpu/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/arc/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/csky/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/i386/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/or1k/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist9
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libm.abilist6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libm.abilist8
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist8
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps24
51 files changed, 1832 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 4d180a3..2f0d2c8 100644
--- a/NEWS
+++ b/NEWS
@@ -36,7 +36,7 @@ Major new features:
functions for float, double, long double, _FloatN and _FloatNx, and a
type-generic macro in <tgmath.h>.
- - Trigonometric functions: acospi, asinpi, cospi, sinpi, tanpi.
+ - Trigonometric functions: acospi, asinpi, atanpi, cospi, sinpi, tanpi.
* The GNU C Library now supports a feature test macro _ISOC2Y_SOURCE to
enable features from the draft ISO C2Y standard. Only some features from
diff --git a/manual/math.texi b/manual/math.texi
index 32c5c05..e148fd8 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -476,6 +476,20 @@ domain, @code{acospi} signals a domain error.
The @code{acospi} functions are from TS 18661-4:2015.
@end deftypefun
+@deftypefun double atanpi (double @var{x})
+@deftypefunx float atanpif (float @var{x})
+@deftypefunx {long double} atanpil (long double @var{x})
+@deftypefunx _FloatN atanpifN (_Float@var{N} @var{x})
+@deftypefunx _FloatNx atanpifNx (_Float@var{N}x @var{x})
+@standards{TS 18661-4:2015, math.h}
+@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
+These functions compute the arctangent of @var{x}, divided by pi. The
+result is in the interval between @code{-0.5} and @code{0.5}
+(inclusive).
+
+The @code{atanpi} functions are from TS 18661-4:2015.
+@end deftypefun
+
@cindex inverse complex trigonometric functions
@w{ISO C99} defines complex versions of the inverse trig functions.
diff --git a/math/Makefile b/math/Makefile
index 87ff79b..6f0d210 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -95,6 +95,7 @@ gen-libm-calls = \
k_casinhF \
s_acospiF \
s_asinpiF \
+ s_atanpiF \
s_cacosF \
s_cacoshF \
s_canonicalizeF \
@@ -626,6 +627,7 @@ libm-test-funcs-auto = \
atan \
atan2 \
atanh \
+ atanpi \
cabs \
cacos \
cacosh \
@@ -936,6 +938,7 @@ tgmath3-macros = \
atan \
atan2 \
atanh \
+ atanpi \
carg \
cbrt \
ceil \
@@ -1320,6 +1323,7 @@ CFLAGS-s_asinpi.c += -fno-builtin-asinpil
CFLAGS-s_atan.c += -fno-builtin-atanl
CFLAGS-w_atan2.c += -fno-builtin-atan2l
CFLAGS-w_atanh.c += -fno-builtin-atanhl
+CFLAGS-s_atanpi.c += -fno-builtin-atanpil
CFLAGS-s_cabs.c += -fno-builtin-cabsl
CFLAGS-s_cacos.c += -fno-builtin-cacosl
CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
@@ -1463,6 +1467,7 @@ CFLAGS-s_asinpi.c += -fno-builtin-asinpif32x -fno-builtin-asinpif64
CFLAGS-s_atan.c += -fno-builtin-atanf32x -fno-builtin-atanf64
CFLAGS-w_atan2.c += -fno-builtin-atan2f32x -fno-builtin-atan2f64
CFLAGS-w_atanh.c += -fno-builtin-atanhf32x -fno-builtin-atanhf64
+CFLAGS-s_atanpi.c += -fno-builtin-atanpif32x -fno-builtin-atanpif64
CFLAGS-s_cabs.c += -fno-builtin-cabsf32x -fno-builtin-cabsf64
CFLAGS-s_cacos.c += -fno-builtin-cacosf32x -fno-builtin-cacosf64
CFLAGS-s_cacosh.c += -fno-builtin-cacoshf32x -fno-builtin-cacoshf64
@@ -1592,6 +1597,7 @@ CFLAGS-s_asinpif.c += -fno-builtin-asinpif32
CFLAGS-s_atanf.c += -fno-builtin-atanf32
CFLAGS-w_atan2f.c += -fno-builtin-atan2f32
CFLAGS-w_atanhf.c += -fno-builtin-atanhf32
+CFLAGS-s_atanpif.c += -fno-builtin-atanpif32
CFLAGS-s_cabsf.c += -fno-builtin-cabsf32
CFLAGS-s_cacosf.c += -fno-builtin-cacosf32
CFLAGS-s_cacoshf.c += -fno-builtin-cacoshf32
diff --git a/math/Versions b/math/Versions
index a7b79b0..3abf90d 100644
--- a/math/Versions
+++ b/math/Versions
@@ -657,12 +657,14 @@ libm {
# Functions not involving _Float64x or _Float128, for all configurations.
acospi; acospif; acospil; acospif32; acospif64; acospif32x;
asinpi; asinpif; asinpil; asinpif32; asinpif64; asinpif32x;
+ atanpi; atanpif; atanpil; atanpif32; atanpif64; atanpif32x;
cospi; cospif; cospil; cospif32; cospif64; cospif32x;
sinpi; sinpif; sinpil; sinpif32; sinpif64; sinpif32x;
tanpi; tanpif; tanpil; tanpif32; tanpif64; tanpif32x;
# Functions involving _Float64x or _Float128, for some configurations.
acospif64x; acospif128;
asinpif64x; asinpif128;
+ atanpif64x; atanpif128;
cospif64x; cospif128;
sinpif64x; sinpif128;
tanpif64x; tanpif128;
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 809df5c..ebea756d 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -748,6 +748,46 @@ atanh -min
atanh min_subnorm
atanh -min_subnorm
+atanpi 0
+atanpi -0
+atanpi max
+atanpi -max
+atanpi 1
+atanpi -1
+atanpi 0.75
+atanpi 0x1p-5
+atanpi 0x1p-10
+atanpi 0x1p-15
+atanpi 0x1p-20
+atanpi 0x1p-25
+atanpi 0x1p-30
+atanpi 0x1p-35
+atanpi 0x1p-40
+atanpi 0x1p-45
+atanpi 0x1p-50
+atanpi 0x1p-55
+atanpi 0x1p-60
+atanpi 2.5
+atanpi 10
+atanpi 1e6
+atanpi 0x1p31
+atanpi 0x1p-100
+atanpi 0x1p-600
+atanpi 0x1p-10000
+atanpi -0x3.b02d84p-4
+atanpi -0x3.3fb708p-4
+atanpi -0x2.3249ap+0
+atanpi -0x1.363f46p+0
+atanpi -0x1.ad4c0ap+0
+atanpi -0x3.eb8e18p+0
+atanpi 0x3.53c188p+0
+atanpi -0x1.58c83p+0
+atanpi 0x1.626772p-1
+atanpi min
+atanpi -min
+atanpi min_subnorm
+atanpi -min_subnorm
+
# cabs (x,y) == cabs (y,x).
cabs 0.75 12.390625
# cabs (x,y) == cabs (-x,y).
diff --git a/math/auto-libm-test-out-atanpi b/math/auto-libm-test-out-atanpi
new file mode 100644
index 0000000..b6e8abd
--- /dev/null
+++ b/math/auto-libm-test-out-atanpi
@@ -0,0 +1,1379 @@
+atanpi 0
+= atanpi downward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+atanpi -0
+= atanpi downward binary32 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest binary32 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero binary32 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward binary32 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi downward binary64 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest binary64 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero binary64 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward binary64 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi downward intel96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest intel96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero intel96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward intel96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi downward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest m68k96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero m68k96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi downward binary128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest binary128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero binary128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward binary128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi downward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi tonearest ibm128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi towardzero ibm128 -0x0p+0 : -0x0p+0 : inexact-ok
+= atanpi upward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok
+atanpi max
+= atanpi downward binary32 0xf.fffffp+124 : 0x7.fffff8p-4 : inexact-ok
+= atanpi tonearest binary32 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary32 0xf.fffffp+124 : 0x7.fffff8p-4 : inexact-ok
+= atanpi upward binary32 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward binary64 0xf.fffffp+124 : 0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary64 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary64 0xf.fffffp+124 : 0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi upward binary64 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward intel96 0xf.fffffp+124 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest intel96 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero intel96 0xf.fffffp+124 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward m68k96 0xf.fffffp+124 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest m68k96 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 0xf.fffffp+124 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward binary128 0xf.fffffp+124 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary128 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.fffffp+124 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward ibm128 0xf.fffffp+124 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi tonearest ibm128 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 0xf.fffffp+124 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 0xf.fffffp+124 : 0x8p-4 : inexact-ok
+= atanpi downward binary64 0xf.ffffffffffff8p+1020 : 0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary64 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary64 0xf.ffffffffffff8p+1020 : 0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi upward binary64 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi downward intel96 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest intel96 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero intel96 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi downward m68k96 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest m68k96 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi downward binary128 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary128 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi downward ibm128 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi tonearest ibm128 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 0xf.ffffffffffff8p+1020 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 0xf.ffffffffffff8p+1020 : 0x8p-4 : inexact-ok
+= atanpi downward intel96 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest intel96 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi towardzero intel96 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi downward m68k96 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi tonearest m68k96 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi downward binary128 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary128 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.fffffffffffffffp+16380 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 0xf.fffffffffffffffp+16380 : 0x8p-4 : inexact-ok
+= atanpi downward binary128 0xf.fffffffffffffffffffffffffff8p+16380 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary128 0xf.fffffffffffffffffffffffffff8p+16380 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.fffffffffffffffffffffffffff8p+16380 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 0xf.fffffffffffffffffffffffffff8p+16380 : 0x8p-4 : inexact-ok
+= atanpi downward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi tonearest binary128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x8p-4 : inexact-ok
+= atanpi downward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi tonearest ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 0xf.ffffffffffffbffffffffffffcp+1020 : 0x8p-4 : inexact-ok
+atanpi -max
+= atanpi downward binary32 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary32 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary32 -0xf.fffffp+124 : -0x7.fffff8p-4 : inexact-ok
+= atanpi upward binary32 -0xf.fffffp+124 : -0x7.fffff8p-4 : inexact-ok
+= atanpi downward binary64 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary64 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary64 -0xf.fffffp+124 : -0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi upward binary64 -0xf.fffffp+124 : -0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi downward intel96 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest intel96 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero intel96 -0xf.fffffp+124 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 -0xf.fffffp+124 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward m68k96 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest m68k96 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 -0xf.fffffp+124 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 -0xf.fffffp+124 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward binary128 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary128 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary128 -0xf.fffffp+124 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 -0xf.fffffp+124 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi downward ibm128 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi tonearest ibm128 -0xf.fffffp+124 : -0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 -0xf.fffffp+124 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 -0xf.fffffp+124 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi downward binary64 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary64 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary64 -0xf.ffffffffffff8p+1020 : -0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi upward binary64 -0xf.ffffffffffff8p+1020 : -0x7.ffffffffffffcp-4 : inexact-ok
+= atanpi downward intel96 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest intel96 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero intel96 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward m68k96 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest m68k96 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward binary128 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary128 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary128 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi downward ibm128 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest ibm128 -0xf.ffffffffffff8p+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 -0xf.ffffffffffff8p+1020 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi downward intel96 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi tonearest intel96 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi towardzero intel96 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward intel96 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward m68k96 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi tonearest m68k96 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi towardzero m68k96 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi upward m68k96 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffff8p-4 : inexact-ok
+= atanpi downward binary128 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary128 -0xf.fffffffffffffffp+16380 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary128 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 -0xf.fffffffffffffffp+16380 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi downward binary128 -0xf.fffffffffffffffffffffffffff8p+16380 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary128 -0xf.fffffffffffffffffffffffffff8p+16380 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary128 -0xf.fffffffffffffffffffffffffff8p+16380 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 -0xf.fffffffffffffffffffffffffff8p+16380 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi downward binary128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest binary128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero binary128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi upward binary128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x7.fffffffffffffffffffffffffffcp-4 : inexact-ok
+= atanpi downward ibm128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x8p-4 : inexact-ok
+= atanpi tonearest ibm128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x8p-4 : inexact-ok
+= atanpi towardzero ibm128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+= atanpi upward ibm128 -0xf.ffffffffffffbffffffffffffcp+1020 : -0x7.fffffffffffffffffffffffffep-4 : inexact-ok
+atanpi 1
+= atanpi downward binary32 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest binary32 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero binary32 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward binary32 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi downward binary64 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest binary64 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero binary64 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward binary64 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi downward intel96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest intel96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero intel96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward intel96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi downward m68k96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest m68k96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero m68k96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward m68k96 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi downward binary128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest binary128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero binary128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward binary128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi downward ibm128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi tonearest ibm128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi towardzero ibm128 0x1p+0 : 0x4p-4 : inexact-ok
+= atanpi upward ibm128 0x1p+0 : 0x4p-4 : inexact-ok
+atanpi -1
+= atanpi downward binary32 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest binary32 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero binary32 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward binary32 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi downward binary64 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest binary64 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero binary64 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward binary64 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi downward intel96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest intel96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero intel96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward intel96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi downward m68k96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero m68k96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward m68k96 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi downward binary128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest binary128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero binary128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward binary128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi downward ibm128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x1p+0 : -0x4p-4 : inexact-ok
+= atanpi upward ibm128 -0x1p+0 : -0x4p-4 : inexact-ok
+atanpi 0.75
+= atanpi downward binary32 0xcp-4 : 0x3.46feb8p-4 : inexact-ok
+= atanpi tonearest binary32 0xcp-4 : 0x3.46feb8p-4 : inexact-ok
+= atanpi towardzero binary32 0xcp-4 : 0x3.46feb8p-4 : inexact-ok
+= atanpi upward binary32 0xcp-4 : 0x3.46febcp-4 : inexact-ok
+= atanpi downward binary64 0xcp-4 : 0x3.46feb898833dep-4 : inexact-ok
+= atanpi tonearest binary64 0xcp-4 : 0x3.46feb898833dep-4 : inexact-ok
+= atanpi towardzero binary64 0xcp-4 : 0x3.46feb898833dep-4 : inexact-ok
+= atanpi upward binary64 0xcp-4 : 0x3.46feb898833ep-4 : inexact-ok
+= atanpi downward intel96 0xcp-4 : 0x3.46feb898833de668p-4 : inexact-ok
+= atanpi tonearest intel96 0xcp-4 : 0x3.46feb898833de66cp-4 : inexact-ok
+= atanpi towardzero intel96 0xcp-4 : 0x3.46feb898833de668p-4 : inexact-ok
+= atanpi upward intel96 0xcp-4 : 0x3.46feb898833de66cp-4 : inexact-ok
+= atanpi downward m68k96 0xcp-4 : 0x3.46feb898833de668p-4 : inexact-ok
+= atanpi tonearest m68k96 0xcp-4 : 0x3.46feb898833de66cp-4 : inexact-ok
+= atanpi towardzero m68k96 0xcp-4 : 0x3.46feb898833de668p-4 : inexact-ok
+= atanpi upward m68k96 0xcp-4 : 0x3.46feb898833de66cp-4 : inexact-ok
+= atanpi downward binary128 0xcp-4 : 0x3.46feb898833de66a5dc249472b9ap-4 : inexact-ok
+= atanpi tonearest binary128 0xcp-4 : 0x3.46feb898833de66a5dc249472b9ap-4 : inexact-ok
+= atanpi towardzero binary128 0xcp-4 : 0x3.46feb898833de66a5dc249472b9ap-4 : inexact-ok
+= atanpi upward binary128 0xcp-4 : 0x3.46feb898833de66a5dc249472b9cp-4 : inexact-ok
+= atanpi downward ibm128 0xcp-4 : 0x3.46feb898833de66a5dc249472bp-4 : inexact-ok
+= atanpi tonearest ibm128 0xcp-4 : 0x3.46feb898833de66a5dc249472cp-4 : inexact-ok
+= atanpi towardzero ibm128 0xcp-4 : 0x3.46feb898833de66a5dc249472bp-4 : inexact-ok
+= atanpi upward ibm128 0xcp-4 : 0x3.46feb898833de66a5dc249472cp-4 : inexact-ok
+atanpi 0x1p-5
+= atanpi downward binary32 0x8p-8 : 0x2.8bafcp-8 : inexact-ok
+= atanpi tonearest binary32 0x8p-8 : 0x2.8bafc4p-8 : inexact-ok
+= atanpi towardzero binary32 0x8p-8 : 0x2.8bafcp-8 : inexact-ok
+= atanpi upward binary32 0x8p-8 : 0x2.8bafc4p-8 : inexact-ok
+= atanpi downward binary64 0x8p-8 : 0x2.8bafc2b208c4ep-8 : inexact-ok
+= atanpi tonearest binary64 0x8p-8 : 0x2.8bafc2b208c5p-8 : inexact-ok
+= atanpi towardzero binary64 0x8p-8 : 0x2.8bafc2b208c4ep-8 : inexact-ok
+= atanpi upward binary64 0x8p-8 : 0x2.8bafc2b208c5p-8 : inexact-ok
+= atanpi downward intel96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi tonearest intel96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi towardzero intel96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi upward intel96 0x8p-8 : 0x2.8bafc2b208c4f0bp-8 : inexact-ok
+= atanpi downward m68k96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi tonearest m68k96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi towardzero m68k96 0x8p-8 : 0x2.8bafc2b208c4f0acp-8 : inexact-ok
+= atanpi upward m68k96 0x8p-8 : 0x2.8bafc2b208c4f0bp-8 : inexact-ok
+= atanpi downward binary128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5eep-8 : inexact-ok
+= atanpi tonearest binary128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5eep-8 : inexact-ok
+= atanpi towardzero binary128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5eep-8 : inexact-ok
+= atanpi upward binary128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5fp-8 : inexact-ok
+= atanpi downward ibm128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5p-8 : inexact-ok
+= atanpi tonearest ibm128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b6p-8 : inexact-ok
+= atanpi towardzero ibm128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b5p-8 : inexact-ok
+= atanpi upward ibm128 0x8p-8 : 0x2.8bafc2b208c4f0ad3929bd05b6p-8 : inexact-ok
+atanpi 0x1p-10
+= atanpi downward binary32 0x4p-12 : 0x1.45f3p-12 : inexact-ok
+= atanpi tonearest binary32 0x4p-12 : 0x1.45f3p-12 : inexact-ok
+= atanpi towardzero binary32 0x4p-12 : 0x1.45f3p-12 : inexact-ok
+= atanpi upward binary32 0x4p-12 : 0x1.45f302p-12 : inexact-ok
+= atanpi downward binary64 0x4p-12 : 0x1.45f30012374f6p-12 : inexact-ok
+= atanpi tonearest binary64 0x4p-12 : 0x1.45f30012374f7p-12 : inexact-ok
+= atanpi towardzero binary64 0x4p-12 : 0x1.45f30012374f6p-12 : inexact-ok
+= atanpi upward binary64 0x4p-12 : 0x1.45f30012374f7p-12 : inexact-ok
+= atanpi downward intel96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi tonearest intel96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi towardzero intel96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi upward intel96 0x4p-12 : 0x1.45f30012374f6dp-12 : inexact-ok
+= atanpi downward m68k96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi tonearest m68k96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi towardzero m68k96 0x4p-12 : 0x1.45f30012374f6cfep-12 : inexact-ok
+= atanpi upward m68k96 0x4p-12 : 0x1.45f30012374f6dp-12 : inexact-ok
+= atanpi downward binary128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi tonearest binary128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi towardzero binary128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi upward binary128 0x4p-12 : 0x1.45f30012374f6cfe875244233901p-12 : inexact-ok
+= atanpi downward ibm128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi tonearest ibm128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi towardzero ibm128 0x4p-12 : 0x1.45f30012374f6cfe8752442339p-12 : inexact-ok
+= atanpi upward ibm128 0x4p-12 : 0x1.45f30012374f6cfe87524423398p-12 : inexact-ok
+atanpi 0x1p-15
+= atanpi downward binary32 0x2p-16 : 0xa.2f983p-20 : inexact-ok
+= atanpi tonearest binary32 0x2p-16 : 0xa.2f983p-20 : inexact-ok
+= atanpi towardzero binary32 0x2p-16 : 0xa.2f983p-20 : inexact-ok
+= atanpi upward binary32 0x2p-16 : 0xa.2f984p-20 : inexact-ok
+= atanpi downward binary64 0x2p-16 : 0xa.2f9836d74f76p-20 : inexact-ok
+= atanpi tonearest binary64 0x2p-16 : 0xa.2f9836d74f768p-20 : inexact-ok
+= atanpi towardzero binary64 0x2p-16 : 0xa.2f9836d74f76p-20 : inexact-ok
+= atanpi upward binary64 0x2p-16 : 0xa.2f9836d74f768p-20 : inexact-ok
+= atanpi downward intel96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi tonearest intel96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi towardzero intel96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi upward intel96 0x2p-16 : 0xa.2f9836d74f765efp-20 : inexact-ok
+= atanpi downward m68k96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi tonearest m68k96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi towardzero m68k96 0x2p-16 : 0xa.2f9836d74f765eep-20 : inexact-ok
+= atanpi upward m68k96 0x2p-16 : 0xa.2f9836d74f765efp-20 : inexact-ok
+= atanpi downward binary128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b89218p-20 : inexact-ok
+= atanpi tonearest binary128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b8922p-20 : inexact-ok
+= atanpi towardzero binary128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b89218p-20 : inexact-ok
+= atanpi upward binary128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b8922p-20 : inexact-ok
+= atanpi downward ibm128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b89p-20 : inexact-ok
+= atanpi tonearest ibm128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b894p-20 : inexact-ok
+= atanpi towardzero ibm128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b89p-20 : inexact-ok
+= atanpi upward ibm128 0x2p-16 : 0xa.2f9836d74f765ee47fc135b894p-20 : inexact-ok
+atanpi 0x1p-20
+= atanpi downward binary32 0x1p-20 : 0x5.17cc18p-24 : inexact-ok
+= atanpi tonearest binary32 0x1p-20 : 0x5.17cc18p-24 : inexact-ok
+= atanpi towardzero binary32 0x1p-20 : 0x5.17cc18p-24 : inexact-ok
+= atanpi upward binary32 0x1p-20 : 0x5.17cc2p-24 : inexact-ok
+= atanpi downward binary64 0x1p-20 : 0x5.17cc1b72706ep-24 : inexact-ok
+= atanpi tonearest binary64 0x1p-20 : 0x5.17cc1b72706ep-24 : inexact-ok
+= atanpi towardzero binary64 0x1p-20 : 0x5.17cc1b72706ep-24 : inexact-ok
+= atanpi upward binary64 0x1p-20 : 0x5.17cc1b72706e4p-24 : inexact-ok
+= atanpi downward intel96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi tonearest intel96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi towardzero intel96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi upward intel96 0x1p-20 : 0x5.17cc1b72706e0ff8p-24 : inexact-ok
+= atanpi downward m68k96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi tonearest m68k96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi towardzero m68k96 0x1p-20 : 0x5.17cc1b72706e0ffp-24 : inexact-ok
+= atanpi upward m68k96 0x1p-20 : 0x5.17cc1b72706e0ff8p-24 : inexact-ok
+= atanpi downward binary128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a594p-24 : inexact-ok
+= atanpi tonearest binary128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a594p-24 : inexact-ok
+= atanpi towardzero binary128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a594p-24 : inexact-ok
+= atanpi upward binary128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a598p-24 : inexact-ok
+= atanpi downward ibm128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a4p-24 : inexact-ok
+= atanpi tonearest ibm128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a6p-24 : inexact-ok
+= atanpi towardzero ibm128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a4p-24 : inexact-ok
+= atanpi upward ibm128 0x1p-20 : 0x5.17cc1b72706e0ff165c06319a6p-24 : inexact-ok
+atanpi 0x1p-25
+= atanpi downward binary32 0x8p-28 : 0x2.8be60cp-28 : inexact-ok
+= atanpi tonearest binary32 0x8p-28 : 0x2.8be60cp-28 : inexact-ok
+= atanpi towardzero binary32 0x8p-28 : 0x2.8be60cp-28 : inexact-ok
+= atanpi upward binary32 0x8p-28 : 0x2.8be61p-28 : inexact-ok
+= atanpi downward binary64 0x8p-28 : 0x2.8be60db9391p-28 : inexact-ok
+= atanpi tonearest binary64 0x8p-28 : 0x2.8be60db939102p-28 : inexact-ok
+= atanpi towardzero binary64 0x8p-28 : 0x2.8be60db9391p-28 : inexact-ok
+= atanpi upward binary64 0x8p-28 : 0x2.8be60db939102p-28 : inexact-ok
+= atanpi downward intel96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi tonearest intel96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi towardzero intel96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi upward intel96 0x8p-28 : 0x2.8be60db939101e58p-28 : inexact-ok
+= atanpi downward m68k96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi tonearest m68k96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi towardzero m68k96 0x8p-28 : 0x2.8be60db939101e54p-28 : inexact-ok
+= atanpi upward m68k96 0x8p-28 : 0x2.8be60db939101e58p-28 : inexact-ok
+= atanpi downward binary128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5eap-28 : inexact-ok
+= atanpi tonearest binary128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5ecp-28 : inexact-ok
+= atanpi towardzero binary128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5eap-28 : inexact-ok
+= atanpi upward binary128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5ecp-28 : inexact-ok
+= atanpi downward ibm128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5p-28 : inexact-ok
+= atanpi tonearest ibm128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd6p-28 : inexact-ok
+= atanpi towardzero ibm128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd5p-28 : inexact-ok
+= atanpi upward ibm128 0x8p-28 : 0x2.8be60db939101e54c4cdefdbd6p-28 : inexact-ok
+atanpi 0x1p-30
+= atanpi downward binary32 0x4p-32 : 0x1.45f306p-32 : inexact-ok
+= atanpi tonearest binary32 0x4p-32 : 0x1.45f306p-32 : inexact-ok
+= atanpi towardzero binary32 0x4p-32 : 0x1.45f306p-32 : inexact-ok
+= atanpi upward binary32 0x4p-32 : 0x1.45f308p-32 : inexact-ok
+= atanpi downward binary64 0x4p-32 : 0x1.45f306dc9c882p-32 : inexact-ok
+= atanpi tonearest binary64 0x4p-32 : 0x1.45f306dc9c883p-32 : inexact-ok
+= atanpi towardzero binary64 0x4p-32 : 0x1.45f306dc9c882p-32 : inexact-ok
+= atanpi upward binary64 0x4p-32 : 0x1.45f306dc9c883p-32 : inexact-ok
+= atanpi downward intel96 0x4p-32 : 0x1.45f306dc9c882a4cp-32 : inexact-ok
+= atanpi tonearest intel96 0x4p-32 : 0x1.45f306dc9c882a4ep-32 : inexact-ok
+= atanpi towardzero intel96 0x4p-32 : 0x1.45f306dc9c882a4cp-32 : inexact-ok
+= atanpi upward intel96 0x4p-32 : 0x1.45f306dc9c882a4ep-32 : inexact-ok
+= atanpi downward m68k96 0x4p-32 : 0x1.45f306dc9c882a4cp-32 : inexact-ok
+= atanpi tonearest m68k96 0x4p-32 : 0x1.45f306dc9c882a4ep-32 : inexact-ok
+= atanpi towardzero m68k96 0x4p-32 : 0x1.45f306dc9c882a4cp-32 : inexact-ok
+= atanpi upward m68k96 0x4p-32 : 0x1.45f306dc9c882a4ep-32 : inexact-ok
+= atanpi downward binary128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fce8p-32 : inexact-ok
+= atanpi tonearest binary128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fce9p-32 : inexact-ok
+= atanpi towardzero binary128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fce8p-32 : inexact-ok
+= atanpi upward binary128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fce9p-32 : inexact-ok
+= atanpi downward ibm128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fc8p-32 : inexact-ok
+= atanpi tonearest ibm128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fdp-32 : inexact-ok
+= atanpi towardzero ibm128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fc8p-32 : inexact-ok
+= atanpi upward ibm128 0x4p-32 : 0x1.45f306dc9c882a4d2de935b5fdp-32 : inexact-ok
+atanpi 0x1p-35
+= atanpi downward binary32 0x2p-36 : 0xa.2f983p-40 : inexact-ok
+= atanpi tonearest binary32 0x2p-36 : 0xa.2f983p-40 : inexact-ok
+= atanpi towardzero binary32 0x2p-36 : 0xa.2f983p-40 : inexact-ok
+= atanpi upward binary32 0x2p-36 : 0xa.2f984p-40 : inexact-ok
+= atanpi downward binary64 0x2p-36 : 0xa.2f9836e4e441p-40 : inexact-ok
+= atanpi tonearest binary64 0x2p-36 : 0xa.2f9836e4e4418p-40 : inexact-ok
+= atanpi towardzero binary64 0x2p-36 : 0xa.2f9836e4e441p-40 : inexact-ok
+= atanpi upward binary64 0x2p-36 : 0xa.2f9836e4e4418p-40 : inexact-ok
+= atanpi downward intel96 0x2p-36 : 0xa.2f9836e4e441529p-40 : inexact-ok
+= atanpi tonearest intel96 0x2p-36 : 0xa.2f9836e4e44152ap-40 : inexact-ok
+= atanpi towardzero intel96 0x2p-36 : 0xa.2f9836e4e441529p-40 : inexact-ok
+= atanpi upward intel96 0x2p-36 : 0xa.2f9836e4e44152ap-40 : inexact-ok
+= atanpi downward m68k96 0x2p-36 : 0xa.2f9836e4e441529p-40 : inexact-ok
+= atanpi tonearest m68k96 0x2p-36 : 0xa.2f9836e4e44152ap-40 : inexact-ok
+= atanpi towardzero m68k96 0x2p-36 : 0xa.2f9836e4e441529p-40 : inexact-ok
+= atanpi upward m68k96 0x2p-36 : 0xa.2f9836e4e44152ap-40 : inexact-ok
+= atanpi downward binary128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b777p-40 : inexact-ok
+= atanpi tonearest binary128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b777p-40 : inexact-ok
+= atanpi towardzero binary128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b777p-40 : inexact-ok
+= atanpi upward binary128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b7778p-40 : inexact-ok
+= atanpi downward ibm128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b74p-40 : inexact-ok
+= atanpi tonearest ibm128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b78p-40 : inexact-ok
+= atanpi towardzero ibm128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b74p-40 : inexact-ok
+= atanpi upward ibm128 0x2p-36 : 0xa.2f9836e4e441529fb4e0b22b78p-40 : inexact-ok
+atanpi 0x1p-40
+= atanpi downward binary32 0x1p-40 : 0x5.17cc18p-44 : inexact-ok
+= atanpi tonearest binary32 0x1p-40 : 0x5.17cc18p-44 : inexact-ok
+= atanpi towardzero binary32 0x1p-40 : 0x5.17cc18p-44 : inexact-ok
+= atanpi upward binary32 0x1p-40 : 0x5.17cc2p-44 : inexact-ok
+= atanpi downward binary64 0x1p-40 : 0x5.17cc1b7272208p-44 : inexact-ok
+= atanpi tonearest binary64 0x1p-40 : 0x5.17cc1b727220cp-44 : inexact-ok
+= atanpi towardzero binary64 0x1p-40 : 0x5.17cc1b7272208p-44 : inexact-ok
+= atanpi upward binary64 0x1p-40 : 0x5.17cc1b727220cp-44 : inexact-ok
+= atanpi downward intel96 0x1p-40 : 0x5.17cc1b727220a948p-44 : inexact-ok
+= atanpi tonearest intel96 0x1p-40 : 0x5.17cc1b727220a95p-44 : inexact-ok
+= atanpi towardzero intel96 0x1p-40 : 0x5.17cc1b727220a948p-44 : inexact-ok
+= atanpi upward intel96 0x1p-40 : 0x5.17cc1b727220a95p-44 : inexact-ok
+= atanpi downward m68k96 0x1p-40 : 0x5.17cc1b727220a948p-44 : inexact-ok
+= atanpi tonearest m68k96 0x1p-40 : 0x5.17cc1b727220a95p-44 : inexact-ok
+= atanpi towardzero m68k96 0x1p-40 : 0x5.17cc1b727220a948p-44 : inexact-ok
+= atanpi upward m68k96 0x1p-40 : 0x5.17cc1b727220a95p-44 : inexact-ok
+= atanpi downward binary128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64b28p-44 : inexact-ok
+= atanpi tonearest binary128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64b2cp-44 : inexact-ok
+= atanpi towardzero binary128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64b28p-44 : inexact-ok
+= atanpi upward binary128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64b2cp-44 : inexact-ok
+= atanpi downward ibm128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64ap-44 : inexact-ok
+= atanpi tonearest ibm128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64cp-44 : inexact-ok
+= atanpi towardzero ibm128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64ap-44 : inexact-ok
+= atanpi upward ibm128 0x1p-40 : 0x5.17cc1b727220a94fe1390bf64cp-44 : inexact-ok
+atanpi 0x1p-45
+= atanpi downward binary32 0x8p-48 : 0x2.8be60cp-48 : inexact-ok
+= atanpi tonearest binary32 0x8p-48 : 0x2.8be60cp-48 : inexact-ok
+= atanpi towardzero binary32 0x8p-48 : 0x2.8be60cp-48 : inexact-ok
+= atanpi upward binary32 0x8p-48 : 0x2.8be61p-48 : inexact-ok
+= atanpi downward binary64 0x8p-48 : 0x2.8be60db939104p-48 : inexact-ok
+= atanpi tonearest binary64 0x8p-48 : 0x2.8be60db939106p-48 : inexact-ok
+= atanpi towardzero binary64 0x8p-48 : 0x2.8be60db939104p-48 : inexact-ok
+= atanpi upward binary64 0x8p-48 : 0x2.8be60db939106p-48 : inexact-ok
+= atanpi downward intel96 0x8p-48 : 0x2.8be60db9391054a4p-48 : inexact-ok
+= atanpi tonearest intel96 0x8p-48 : 0x2.8be60db9391054a8p-48 : inexact-ok
+= atanpi towardzero intel96 0x8p-48 : 0x2.8be60db9391054a4p-48 : inexact-ok
+= atanpi upward intel96 0x8p-48 : 0x2.8be60db9391054a8p-48 : inexact-ok
+= atanpi downward m68k96 0x8p-48 : 0x2.8be60db9391054a4p-48 : inexact-ok
+= atanpi tonearest m68k96 0x8p-48 : 0x2.8be60db9391054a8p-48 : inexact-ok
+= atanpi towardzero m68k96 0x8p-48 : 0x2.8be60db9391054a4p-48 : inexact-ok
+= atanpi upward m68k96 0x8p-48 : 0x2.8be60db9391054a8p-48 : inexact-ok
+= atanpi downward binary128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181a6p-48 : inexact-ok
+= atanpi tonearest binary128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181a8p-48 : inexact-ok
+= atanpi towardzero binary128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181a6p-48 : inexact-ok
+= atanpi upward binary128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181a8p-48 : inexact-ok
+= atanpi downward ibm128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181p-48 : inexact-ok
+= atanpi tonearest ibm128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1182p-48 : inexact-ok
+= atanpi towardzero ibm128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1181p-48 : inexact-ok
+= atanpi upward ibm128 0x8p-48 : 0x2.8be60db9391054a7f09d5f1182p-48 : inexact-ok
+atanpi 0x1p-50
+= atanpi downward binary32 0x4p-52 : 0x1.45f306p-52 : inexact-ok
+= atanpi tonearest binary32 0x4p-52 : 0x1.45f306p-52 : inexact-ok
+= atanpi towardzero binary32 0x4p-52 : 0x1.45f306p-52 : inexact-ok
+= atanpi upward binary32 0x4p-52 : 0x1.45f308p-52 : inexact-ok
+= atanpi downward binary64 0x4p-52 : 0x1.45f306dc9c882p-52 : inexact-ok
+= atanpi tonearest binary64 0x4p-52 : 0x1.45f306dc9c883p-52 : inexact-ok
+= atanpi towardzero binary64 0x4p-52 : 0x1.45f306dc9c882p-52 : inexact-ok
+= atanpi upward binary64 0x4p-52 : 0x1.45f306dc9c883p-52 : inexact-ok
+= atanpi downward intel96 0x4p-52 : 0x1.45f306dc9c882a52p-52 : inexact-ok
+= atanpi tonearest intel96 0x4p-52 : 0x1.45f306dc9c882a54p-52 : inexact-ok
+= atanpi towardzero intel96 0x4p-52 : 0x1.45f306dc9c882a52p-52 : inexact-ok
+= atanpi upward intel96 0x4p-52 : 0x1.45f306dc9c882a54p-52 : inexact-ok
+= atanpi downward m68k96 0x4p-52 : 0x1.45f306dc9c882a52p-52 : inexact-ok
+= atanpi tonearest m68k96 0x4p-52 : 0x1.45f306dc9c882a54p-52 : inexact-ok
+= atanpi towardzero m68k96 0x4p-52 : 0x1.45f306dc9c882a52p-52 : inexact-ok
+= atanpi upward m68k96 0x4p-52 : 0x1.45f306dc9c882a54p-52 : inexact-ok
+= atanpi downward binary128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e39fp-52 : inexact-ok
+= atanpi tonearest binary128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e39fp-52 : inexact-ok
+= atanpi towardzero binary128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e39fp-52 : inexact-ok
+= atanpi upward binary128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e3ap-52 : inexact-ok
+= atanpi downward ibm128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e38p-52 : inexact-ok
+= atanpi tonearest ibm128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e38p-52 : inexact-ok
+= atanpi towardzero ibm128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e38p-52 : inexact-ok
+= atanpi upward ibm128 0x4p-52 : 0x1.45f306dc9c882a53f84eafa3e4p-52 : inexact-ok
+atanpi 0x1p-55
+= atanpi downward binary32 0x2p-56 : 0xa.2f983p-60 : inexact-ok
+= atanpi tonearest binary32 0x2p-56 : 0xa.2f983p-60 : inexact-ok
+= atanpi towardzero binary32 0x2p-56 : 0xa.2f983p-60 : inexact-ok
+= atanpi upward binary32 0x2p-56 : 0xa.2f984p-60 : inexact-ok
+= atanpi downward binary64 0x2p-56 : 0xa.2f9836e4e441p-60 : inexact-ok
+= atanpi tonearest binary64 0x2p-56 : 0xa.2f9836e4e4418p-60 : inexact-ok
+= atanpi towardzero binary64 0x2p-56 : 0xa.2f9836e4e441p-60 : inexact-ok
+= atanpi upward binary64 0x2p-56 : 0xa.2f9836e4e4418p-60 : inexact-ok
+= atanpi downward intel96 0x2p-56 : 0xa.2f9836e4e441529p-60 : inexact-ok
+= atanpi tonearest intel96 0x2p-56 : 0xa.2f9836e4e44152ap-60 : inexact-ok
+= atanpi towardzero intel96 0x2p-56 : 0xa.2f9836e4e441529p-60 : inexact-ok
+= atanpi upward intel96 0x2p-56 : 0xa.2f9836e4e44152ap-60 : inexact-ok
+= atanpi downward m68k96 0x2p-56 : 0xa.2f9836e4e441529p-60 : inexact-ok
+= atanpi tonearest m68k96 0x2p-56 : 0xa.2f9836e4e44152ap-60 : inexact-ok
+= atanpi towardzero m68k96 0x2p-56 : 0xa.2f9836e4e441529p-60 : inexact-ok
+= atanpi upward m68k96 0x2p-56 : 0xa.2f9836e4e44152ap-60 : inexact-ok
+= atanpi downward binary128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f534p-60 : inexact-ok
+= atanpi tonearest binary128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f534p-60 : inexact-ok
+= atanpi towardzero binary128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f534p-60 : inexact-ok
+= atanpi upward binary128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f5348p-60 : inexact-ok
+= atanpi downward ibm128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f5p-60 : inexact-ok
+= atanpi tonearest ibm128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f54p-60 : inexact-ok
+= atanpi towardzero ibm128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f5p-60 : inexact-ok
+= atanpi upward ibm128 0x2p-56 : 0xa.2f9836e4e441529fc2757d1f54p-60 : inexact-ok
+atanpi 0x1p-60
+= atanpi downward binary32 0x1p-60 : 0x5.17cc18p-64 : inexact-ok
+= atanpi tonearest binary32 0x1p-60 : 0x5.17cc18p-64 : inexact-ok
+= atanpi towardzero binary32 0x1p-60 : 0x5.17cc18p-64 : inexact-ok
+= atanpi upward binary32 0x1p-60 : 0x5.17cc2p-64 : inexact-ok
+= atanpi downward binary64 0x1p-60 : 0x5.17cc1b7272208p-64 : inexact-ok
+= atanpi tonearest binary64 0x1p-60 : 0x5.17cc1b727220cp-64 : inexact-ok
+= atanpi towardzero binary64 0x1p-60 : 0x5.17cc1b7272208p-64 : inexact-ok
+= atanpi upward binary64 0x1p-60 : 0x5.17cc1b727220cp-64 : inexact-ok
+= atanpi downward intel96 0x1p-60 : 0x5.17cc1b727220a948p-64 : inexact-ok
+= atanpi tonearest intel96 0x1p-60 : 0x5.17cc1b727220a95p-64 : inexact-ok
+= atanpi towardzero intel96 0x1p-60 : 0x5.17cc1b727220a948p-64 : inexact-ok
+= atanpi upward intel96 0x1p-60 : 0x5.17cc1b727220a95p-64 : inexact-ok
+= atanpi downward m68k96 0x1p-60 : 0x5.17cc1b727220a948p-64 : inexact-ok
+= atanpi tonearest m68k96 0x1p-60 : 0x5.17cc1b727220a95p-64 : inexact-ok
+= atanpi towardzero m68k96 0x1p-60 : 0x5.17cc1b727220a948p-64 : inexact-ok
+= atanpi upward m68k96 0x1p-60 : 0x5.17cc1b727220a95p-64 : inexact-ok
+= atanpi downward binary128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa9a4p-64 : inexact-ok
+= atanpi tonearest binary128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa9a8p-64 : inexact-ok
+= atanpi towardzero binary128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa9a4p-64 : inexact-ok
+= atanpi upward binary128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa9a8p-64 : inexact-ok
+= atanpi downward ibm128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa8p-64 : inexact-ok
+= atanpi tonearest ibm128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8faap-64 : inexact-ok
+= atanpi towardzero ibm128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8fa8p-64 : inexact-ok
+= atanpi upward ibm128 0x1p-60 : 0x5.17cc1b727220a94fe13abe8faap-64 : inexact-ok
+atanpi 2.5
+= atanpi downward binary32 0x2.8p+0 : 0x6.0fe59p-4 : inexact-ok
+= atanpi tonearest binary32 0x2.8p+0 : 0x6.0fe598p-4 : inexact-ok
+= atanpi towardzero binary32 0x2.8p+0 : 0x6.0fe59p-4 : inexact-ok
+= atanpi upward binary32 0x2.8p+0 : 0x6.0fe598p-4 : inexact-ok
+= atanpi downward binary64 0x2.8p+0 : 0x6.0fe595af0f20cp-4 : inexact-ok
+= atanpi tonearest binary64 0x2.8p+0 : 0x6.0fe595af0f20cp-4 : inexact-ok
+= atanpi towardzero binary64 0x2.8p+0 : 0x6.0fe595af0f20cp-4 : inexact-ok
+= atanpi upward binary64 0x2.8p+0 : 0x6.0fe595af0f21p-4 : inexact-ok
+= atanpi downward intel96 0x2.8p+0 : 0x6.0fe595af0f20cca8p-4 : inexact-ok
+= atanpi tonearest intel96 0x2.8p+0 : 0x6.0fe595af0f20ccbp-4 : inexact-ok
+= atanpi towardzero intel96 0x2.8p+0 : 0x6.0fe595af0f20cca8p-4 : inexact-ok
+= atanpi upward intel96 0x2.8p+0 : 0x6.0fe595af0f20ccbp-4 : inexact-ok
+= atanpi downward m68k96 0x2.8p+0 : 0x6.0fe595af0f20cca8p-4 : inexact-ok
+= atanpi tonearest m68k96 0x2.8p+0 : 0x6.0fe595af0f20ccbp-4 : inexact-ok
+= atanpi towardzero m68k96 0x2.8p+0 : 0x6.0fe595af0f20cca8p-4 : inexact-ok
+= atanpi upward m68k96 0x2.8p+0 : 0x6.0fe595af0f20ccbp-4 : inexact-ok
+= atanpi downward binary128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcdcp-4 : inexact-ok
+= atanpi tonearest binary128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcep-4 : inexact-ok
+= atanpi towardzero binary128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcdcp-4 : inexact-ok
+= atanpi upward binary128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcep-4 : inexact-ok
+= atanpi downward ibm128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcp-4 : inexact-ok
+= atanpi tonearest ibm128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcp-4 : inexact-ok
+= atanpi towardzero ibm128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bcp-4 : inexact-ok
+= atanpi upward ibm128 0x2.8p+0 : 0x6.0fe595af0f20ccaca63bfed1bep-4 : inexact-ok
+atanpi 10
+= atanpi downward binary32 0xap+0 : 0x7.7e0d6p-4 : inexact-ok
+= atanpi tonearest binary32 0xap+0 : 0x7.7e0d6p-4 : inexact-ok
+= atanpi towardzero binary32 0xap+0 : 0x7.7e0d6p-4 : inexact-ok
+= atanpi upward binary32 0xap+0 : 0x7.7e0d68p-4 : inexact-ok
+= atanpi downward binary64 0xap+0 : 0x7.7e0d6242fe56cp-4 : inexact-ok
+= atanpi tonearest binary64 0xap+0 : 0x7.7e0d6242fe56cp-4 : inexact-ok
+= atanpi towardzero binary64 0xap+0 : 0x7.7e0d6242fe56cp-4 : inexact-ok
+= atanpi upward binary64 0xap+0 : 0x7.7e0d6242fe57p-4 : inexact-ok
+= atanpi downward intel96 0xap+0 : 0x7.7e0d6242fe56c4cp-4 : inexact-ok
+= atanpi tonearest intel96 0xap+0 : 0x7.7e0d6242fe56c4c8p-4 : inexact-ok
+= atanpi towardzero intel96 0xap+0 : 0x7.7e0d6242fe56c4cp-4 : inexact-ok
+= atanpi upward intel96 0xap+0 : 0x7.7e0d6242fe56c4c8p-4 : inexact-ok
+= atanpi downward m68k96 0xap+0 : 0x7.7e0d6242fe56c4cp-4 : inexact-ok
+= atanpi tonearest m68k96 0xap+0 : 0x7.7e0d6242fe56c4c8p-4 : inexact-ok
+= atanpi towardzero m68k96 0xap+0 : 0x7.7e0d6242fe56c4cp-4 : inexact-ok
+= atanpi upward m68k96 0xap+0 : 0x7.7e0d6242fe56c4c8p-4 : inexact-ok
+= atanpi downward binary128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff56015p-4 : inexact-ok
+= atanpi tonearest binary128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff56015p-4 : inexact-ok
+= atanpi towardzero binary128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff56015p-4 : inexact-ok
+= atanpi upward binary128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff560154p-4 : inexact-ok
+= atanpi downward ibm128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff56p-4 : inexact-ok
+= atanpi tonearest ibm128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff5602p-4 : inexact-ok
+= atanpi towardzero ibm128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff56p-4 : inexact-ok
+= atanpi upward ibm128 0xap+0 : 0x7.7e0d6242fe56c4c47814ff5602p-4 : inexact-ok
+atanpi 1e6
+= atanpi downward binary32 0xf.424p+16 : 0x7.ffffa8p-4 : inexact-ok
+= atanpi tonearest binary32 0xf.424p+16 : 0x7.ffffa8p-4 : inexact-ok
+= atanpi towardzero binary32 0xf.424p+16 : 0x7.ffffa8p-4 : inexact-ok
+= atanpi upward binary32 0xf.424p+16 : 0x7.ffffbp-4 : inexact-ok
+= atanpi downward binary64 0xf.424p+16 : 0x7.ffffaa8de943p-4 : inexact-ok
+= atanpi tonearest binary64 0xf.424p+16 : 0x7.ffffaa8de9434p-4 : inexact-ok
+= atanpi towardzero binary64 0xf.424p+16 : 0x7.ffffaa8de943p-4 : inexact-ok
+= atanpi upward binary64 0xf.424p+16 : 0x7.ffffaa8de9434p-4 : inexact-ok
+= atanpi downward intel96 0xf.424p+16 : 0x7.ffffaa8de94331d8p-4 : inexact-ok
+= atanpi tonearest intel96 0xf.424p+16 : 0x7.ffffaa8de94331ep-4 : inexact-ok
+= atanpi towardzero intel96 0xf.424p+16 : 0x7.ffffaa8de94331d8p-4 : inexact-ok
+= atanpi upward intel96 0xf.424p+16 : 0x7.ffffaa8de94331ep-4 : inexact-ok
+= atanpi downward m68k96 0xf.424p+16 : 0x7.ffffaa8de94331d8p-4 : inexact-ok
+= atanpi tonearest m68k96 0xf.424p+16 : 0x7.ffffaa8de94331ep-4 : inexact-ok
+= atanpi towardzero m68k96 0xf.424p+16 : 0x7.ffffaa8de94331d8p-4 : inexact-ok
+= atanpi upward m68k96 0xf.424p+16 : 0x7.ffffaa8de94331ep-4 : inexact-ok
+= atanpi downward binary128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e23p-4 : inexact-ok
+= atanpi tonearest binary128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e234p-4 : inexact-ok
+= atanpi towardzero binary128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e23p-4 : inexact-ok
+= atanpi upward binary128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e234p-4 : inexact-ok
+= atanpi downward ibm128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e2p-4 : inexact-ok
+= atanpi tonearest ibm128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e2p-4 : inexact-ok
+= atanpi towardzero ibm128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e2p-4 : inexact-ok
+= atanpi upward ibm128 0xf.424p+16 : 0x7.ffffaa8de94331df46e41084e4p-4 : inexact-ok
+atanpi 0x1p31
+= atanpi downward binary32 0x8p+28 : 0x7.fffff8p-4 : inexact-ok
+= atanpi tonearest binary32 0x8p+28 : 0x8p-4 : inexact-ok
+= atanpi towardzero binary32 0x8p+28 : 0x7.fffff8p-4 : inexact-ok
+= atanpi upward binary32 0x8p+28 : 0x8p-4 : inexact-ok
+= atanpi downward binary64 0x8p+28 : 0x7.fffffff5d067cp-4 : inexact-ok
+= atanpi tonearest binary64 0x8p+28 : 0x7.fffffff5d067cp-4 : inexact-ok
+= atanpi towardzero binary64 0x8p+28 : 0x7.fffffff5d067cp-4 : inexact-ok
+= atanpi upward binary64 0x8p+28 : 0x7.fffffff5d068p-4 : inexact-ok
+= atanpi downward intel96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi tonearest intel96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi towardzero intel96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi upward intel96 0x8p+28 : 0x7.fffffff5d067c92p-4 : inexact-ok
+= atanpi downward m68k96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi tonearest m68k96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi towardzero m68k96 0x8p+28 : 0x7.fffffff5d067c918p-4 : inexact-ok
+= atanpi upward m68k96 0x8p+28 : 0x7.fffffff5d067c92p-4 : inexact-ok
+= atanpi downward binary128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd254p-4 : inexact-ok
+= atanpi tonearest binary128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd254p-4 : inexact-ok
+= atanpi towardzero binary128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd254p-4 : inexact-ok
+= atanpi upward binary128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd258p-4 : inexact-ok
+= atanpi downward ibm128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd2p-4 : inexact-ok
+= atanpi tonearest ibm128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd2p-4 : inexact-ok
+= atanpi towardzero ibm128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd2p-4 : inexact-ok
+= atanpi upward ibm128 0x8p+28 : 0x7.fffffff5d067c91b1bbead6dd4p-4 : inexact-ok
+atanpi 0x1p-100
+= atanpi downward binary32 0x1p-100 : 0x5.17cc18p-104 : inexact-ok
+= atanpi tonearest binary32 0x1p-100 : 0x5.17cc18p-104 : inexact-ok
+= atanpi towardzero binary32 0x1p-100 : 0x5.17cc18p-104 : inexact-ok
+= atanpi upward binary32 0x1p-100 : 0x5.17cc2p-104 : inexact-ok
+= atanpi downward binary64 0x1p-100 : 0x5.17cc1b7272208p-104 : inexact-ok
+= atanpi tonearest binary64 0x1p-100 : 0x5.17cc1b727220cp-104 : inexact-ok
+= atanpi towardzero binary64 0x1p-100 : 0x5.17cc1b7272208p-104 : inexact-ok
+= atanpi upward binary64 0x1p-100 : 0x5.17cc1b727220cp-104 : inexact-ok
+= atanpi downward intel96 0x1p-100 : 0x5.17cc1b727220a948p-104 : inexact-ok
+= atanpi tonearest intel96 0x1p-100 : 0x5.17cc1b727220a95p-104 : inexact-ok
+= atanpi towardzero intel96 0x1p-100 : 0x5.17cc1b727220a948p-104 : inexact-ok
+= atanpi upward intel96 0x1p-100 : 0x5.17cc1b727220a95p-104 : inexact-ok
+= atanpi downward m68k96 0x1p-100 : 0x5.17cc1b727220a948p-104 : inexact-ok
+= atanpi tonearest m68k96 0x1p-100 : 0x5.17cc1b727220a95p-104 : inexact-ok
+= atanpi towardzero m68k96 0x1p-100 : 0x5.17cc1b727220a948p-104 : inexact-ok
+= atanpi upward m68k96 0x1p-100 : 0x5.17cc1b727220a95p-104 : inexact-ok
+= atanpi downward binary128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa9a4p-104 : inexact-ok
+= atanpi tonearest binary128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa9a8p-104 : inexact-ok
+= atanpi towardzero binary128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa9a4p-104 : inexact-ok
+= atanpi upward binary128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa9a8p-104 : inexact-ok
+= atanpi downward ibm128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa8p-104 : inexact-ok
+= atanpi tonearest ibm128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8faap-104 : inexact-ok
+= atanpi towardzero ibm128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8fa8p-104 : inexact-ok
+= atanpi upward ibm128 0x1p-100 : 0x5.17cc1b727220a94fe13abe8faap-104 : inexact-ok
+atanpi 0x1p-600
+= atanpi downward binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary32 0x8p-152 : 0x8p-152 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi tonearest binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi towardzero binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi upward binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi downward intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi tonearest binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi towardzero binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi upward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi downward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi tonearest ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi towardzero ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi upward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi downward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary64 0x1p-600 : 0x5.17cc1b7272208p-604 : inexact-ok
+= atanpi tonearest binary64 0x1p-600 : 0x5.17cc1b727220cp-604 : inexact-ok
+= atanpi towardzero binary64 0x1p-600 : 0x5.17cc1b7272208p-604 : inexact-ok
+= atanpi upward binary64 0x1p-600 : 0x5.17cc1b727220cp-604 : inexact-ok
+= atanpi downward intel96 0x1p-600 : 0x5.17cc1b727220a948p-604 : inexact-ok
+= atanpi tonearest intel96 0x1p-600 : 0x5.17cc1b727220a95p-604 : inexact-ok
+= atanpi towardzero intel96 0x1p-600 : 0x5.17cc1b727220a948p-604 : inexact-ok
+= atanpi upward intel96 0x1p-600 : 0x5.17cc1b727220a95p-604 : inexact-ok
+= atanpi downward m68k96 0x1p-600 : 0x5.17cc1b727220a948p-604 : inexact-ok
+= atanpi tonearest m68k96 0x1p-600 : 0x5.17cc1b727220a95p-604 : inexact-ok
+= atanpi towardzero m68k96 0x1p-600 : 0x5.17cc1b727220a948p-604 : inexact-ok
+= atanpi upward m68k96 0x1p-600 : 0x5.17cc1b727220a95p-604 : inexact-ok
+= atanpi downward binary128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa9a4p-604 : inexact-ok
+= atanpi tonearest binary128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa9a8p-604 : inexact-ok
+= atanpi towardzero binary128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa9a4p-604 : inexact-ok
+= atanpi upward binary128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa9a8p-604 : inexact-ok
+= atanpi downward ibm128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa8p-604 : inexact-ok
+= atanpi tonearest ibm128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8faap-604 : inexact-ok
+= atanpi towardzero ibm128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8fa8p-604 : inexact-ok
+= atanpi upward ibm128 0x1p-600 : 0x5.17cc1b727220a94fe13abe8faap-604 : inexact-ok
+atanpi 0x1p-10000
+= atanpi downward binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary32 0x8p-152 : 0x8p-152 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi tonearest binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi towardzero binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi upward binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi downward intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi tonearest binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi towardzero binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi upward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi downward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi tonearest ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi towardzero ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi upward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi downward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary32 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary64 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward intel96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward m68k96 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward binary128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok
+= atanpi downward binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi tonearest intel96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero intel96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward intel96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi downward m68k96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi tonearest m68k96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero m68k96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward m68k96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi downward binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi tonearest binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi towardzero binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi upward binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi downward ibm128 0x4p-1076 : 0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi tonearest ibm128 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero ibm128 0x4p-1076 : 0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi upward ibm128 0x4p-1076 : 0x4p-1076 : xfail:ibm128-libgcc inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x1p-10000 : 0x5.17cc1b727220a948p-10004 : inexact-ok
+= atanpi tonearest intel96 0x1p-10000 : 0x5.17cc1b727220a95p-10004 : inexact-ok
+= atanpi towardzero intel96 0x1p-10000 : 0x5.17cc1b727220a948p-10004 : inexact-ok
+= atanpi upward intel96 0x1p-10000 : 0x5.17cc1b727220a95p-10004 : inexact-ok
+= atanpi downward m68k96 0x1p-10000 : 0x5.17cc1b727220a948p-10004 : inexact-ok
+= atanpi tonearest m68k96 0x1p-10000 : 0x5.17cc1b727220a95p-10004 : inexact-ok
+= atanpi towardzero m68k96 0x1p-10000 : 0x5.17cc1b727220a948p-10004 : inexact-ok
+= atanpi upward m68k96 0x1p-10000 : 0x5.17cc1b727220a95p-10004 : inexact-ok
+= atanpi downward binary128 0x1p-10000 : 0x5.17cc1b727220a94fe13abe8fa9a4p-10004 : inexact-ok
+= atanpi tonearest binary128 0x1p-10000 : 0x5.17cc1b727220a94fe13abe8fa9a8p-10004 : inexact-ok
+= atanpi towardzero binary128 0x1p-10000 : 0x5.17cc1b727220a94fe13abe8fa9a4p-10004 : inexact-ok
+= atanpi upward binary128 0x1p-10000 : 0x5.17cc1b727220a94fe13abe8fa9a8p-10004 : inexact-ok
+atanpi -0x3.b02d84p-4
+= atanpi downward binary32 -0x3.b02d84p-4 : -0x1.2761aap-4 : inexact-ok
+= atanpi tonearest binary32 -0x3.b02d84p-4 : -0x1.2761a8p-4 : inexact-ok
+= atanpi towardzero binary32 -0x3.b02d84p-4 : -0x1.2761a8p-4 : inexact-ok
+= atanpi upward binary32 -0x3.b02d84p-4 : -0x1.2761a8p-4 : inexact-ok
+= atanpi downward binary64 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8dp-4 : inexact-ok
+= atanpi tonearest binary64 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8dp-4 : inexact-ok
+= atanpi towardzero binary64 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cp-4 : inexact-ok
+= atanpi upward binary64 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cp-4 : inexact-ok
+= atanpi downward intel96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce6p-4 : inexact-ok
+= atanpi tonearest intel96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi towardzero intel96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi upward intel96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi downward m68k96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce6p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi towardzero m68k96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi upward m68k96 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4p-4 : inexact-ok
+= atanpi downward binary128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada4147146p-4 : inexact-ok
+= atanpi tonearest binary128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada4147145p-4 : inexact-ok
+= atanpi towardzero binary128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada4147145p-4 : inexact-ok
+= atanpi upward binary128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada4147145p-4 : inexact-ok
+= atanpi downward ibm128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada414718p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada414718p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada41471p-4 : inexact-ok
+= atanpi upward ibm128 -0x3.b02d84p-4 : -0x1.2761a8c2bbb8cce4d6ada41471p-4 : inexact-ok
+atanpi -0x3.3fb708p-4
+= atanpi downward binary32 -0x3.3fb708p-4 : -0x1.053126p-4 : inexact-ok
+= atanpi tonearest binary32 -0x3.3fb708p-4 : -0x1.053124p-4 : inexact-ok
+= atanpi towardzero binary32 -0x3.3fb708p-4 : -0x1.053124p-4 : inexact-ok
+= atanpi upward binary32 -0x3.3fb708p-4 : -0x1.053124p-4 : inexact-ok
+= atanpi downward binary64 -0x3.3fb708p-4 : -0x1.0531241695697p-4 : inexact-ok
+= atanpi tonearest binary64 -0x3.3fb708p-4 : -0x1.0531241695696p-4 : inexact-ok
+= atanpi towardzero binary64 -0x3.3fb708p-4 : -0x1.0531241695696p-4 : inexact-ok
+= atanpi upward binary64 -0x3.3fb708p-4 : -0x1.0531241695696p-4 : inexact-ok
+= atanpi downward intel96 -0x3.3fb708p-4 : -0x1.053124169569617p-4 : inexact-ok
+= atanpi tonearest intel96 -0x3.3fb708p-4 : -0x1.053124169569617p-4 : inexact-ok
+= atanpi towardzero intel96 -0x3.3fb708p-4 : -0x1.053124169569616ep-4 : inexact-ok
+= atanpi upward intel96 -0x3.3fb708p-4 : -0x1.053124169569616ep-4 : inexact-ok
+= atanpi downward m68k96 -0x3.3fb708p-4 : -0x1.053124169569617p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x3.3fb708p-4 : -0x1.053124169569617p-4 : inexact-ok
+= atanpi towardzero m68k96 -0x3.3fb708p-4 : -0x1.053124169569616ep-4 : inexact-ok
+= atanpi upward m68k96 -0x3.3fb708p-4 : -0x1.053124169569616ep-4 : inexact-ok
+= atanpi downward binary128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c374cap-4 : inexact-ok
+= atanpi tonearest binary128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c374c9p-4 : inexact-ok
+= atanpi towardzero binary128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c374c9p-4 : inexact-ok
+= atanpi upward binary128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c374c9p-4 : inexact-ok
+= atanpi downward ibm128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c375p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c375p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c3748p-4 : inexact-ok
+= atanpi upward ibm128 -0x3.3fb708p-4 : -0x1.053124169569616f81a493c3748p-4 : inexact-ok
+atanpi -0x2.3249ap+0
+= atanpi downward binary32 -0x2.3249ap+0 : -0x5.d2f7bp-4 : inexact-ok
+= atanpi tonearest binary32 -0x2.3249ap+0 : -0x5.d2f7bp-4 : inexact-ok
+= atanpi towardzero binary32 -0x2.3249ap+0 : -0x5.d2f7a8p-4 : inexact-ok
+= atanpi upward binary32 -0x2.3249ap+0 : -0x5.d2f7a8p-4 : inexact-ok
+= atanpi downward binary64 -0x2.3249ap+0 : -0x5.d2f7ac19ac6ecp-4 : inexact-ok
+= atanpi tonearest binary64 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e8p-4 : inexact-ok
+= atanpi towardzero binary64 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e8p-4 : inexact-ok
+= atanpi upward binary64 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e8p-4 : inexact-ok
+= atanpi downward intel96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92fp-4 : inexact-ok
+= atanpi tonearest intel96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi towardzero intel96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi upward intel96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi downward m68k96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92fp-4 : inexact-ok
+= atanpi tonearest m68k96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi towardzero m68k96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi upward m68k96 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e8p-4 : inexact-ok
+= atanpi downward binary128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ac8p-4 : inexact-ok
+= atanpi tonearest binary128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ac4p-4 : inexact-ok
+= atanpi towardzero binary128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ac4p-4 : inexact-ok
+= atanpi upward binary128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ac4p-4 : inexact-ok
+= atanpi downward ibm128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111cp-4 : inexact-ok
+= atanpi tonearest ibm128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ap-4 : inexact-ok
+= atanpi towardzero ibm128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ap-4 : inexact-ok
+= atanpi upward ibm128 -0x2.3249ap+0 : -0x5.d2f7ac19ac6e92e956d6e6111ap-4 : inexact-ok
+atanpi -0x1.363f46p+0
+= atanpi downward binary32 -0x1.363f46p+0 : -0x4.7c868p-4 : inexact-ok
+= atanpi tonearest binary32 -0x1.363f46p+0 : -0x4.7c8678p-4 : inexact-ok
+= atanpi towardzero binary32 -0x1.363f46p+0 : -0x4.7c8678p-4 : inexact-ok
+= atanpi upward binary32 -0x1.363f46p+0 : -0x4.7c8678p-4 : inexact-ok
+= atanpi downward binary64 -0x1.363f46p+0 : -0x4.7c867ba081c3cp-4 : inexact-ok
+= atanpi tonearest binary64 -0x1.363f46p+0 : -0x4.7c867ba081c38p-4 : inexact-ok
+= atanpi towardzero binary64 -0x1.363f46p+0 : -0x4.7c867ba081c38p-4 : inexact-ok
+= atanpi upward binary64 -0x1.363f46p+0 : -0x4.7c867ba081c38p-4 : inexact-ok
+= atanpi downward intel96 -0x1.363f46p+0 : -0x4.7c867ba081c38ee8p-4 : inexact-ok
+= atanpi tonearest intel96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi towardzero intel96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi upward intel96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi downward m68k96 -0x1.363f46p+0 : -0x4.7c867ba081c38ee8p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi towardzero m68k96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi upward m68k96 -0x1.363f46p+0 : -0x4.7c867ba081c38eep-4 : inexact-ok
+= atanpi downward binary128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059fb8p-4 : inexact-ok
+= atanpi tonearest binary128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059fb8p-4 : inexact-ok
+= atanpi towardzero binary128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059fb4p-4 : inexact-ok
+= atanpi upward binary128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059fb4p-4 : inexact-ok
+= atanpi downward ibm128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c494305ap-4 : inexact-ok
+= atanpi tonearest ibm128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c494305ap-4 : inexact-ok
+= atanpi towardzero ibm128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059ep-4 : inexact-ok
+= atanpi upward ibm128 -0x1.363f46p+0 : -0x4.7c867ba081c38ee03c4943059ep-4 : inexact-ok
+atanpi -0x1.ad4c0ap+0
+= atanpi downward binary32 -0x1.ad4c0ap+0 : -0x5.42eecp-4 : inexact-ok
+= atanpi tonearest binary32 -0x1.ad4c0ap+0 : -0x5.42eecp-4 : inexact-ok
+= atanpi towardzero binary32 -0x1.ad4c0ap+0 : -0x5.42eeb8p-4 : inexact-ok
+= atanpi upward binary32 -0x1.ad4c0ap+0 : -0x5.42eeb8p-4 : inexact-ok
+= atanpi downward binary64 -0x1.ad4c0ap+0 : -0x5.42eebe541dffcp-4 : inexact-ok
+= atanpi tonearest binary64 -0x1.ad4c0ap+0 : -0x5.42eebe541dff8p-4 : inexact-ok
+= atanpi towardzero binary64 -0x1.ad4c0ap+0 : -0x5.42eebe541dff8p-4 : inexact-ok
+= atanpi upward binary64 -0x1.ad4c0ap+0 : -0x5.42eebe541dff8p-4 : inexact-ok
+= atanpi downward intel96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f8p-4 : inexact-ok
+= atanpi tonearest intel96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi towardzero intel96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi upward intel96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi downward m68k96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f8p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi towardzero m68k96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi upward m68k96 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83fp-4 : inexact-ok
+= atanpi downward binary128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b61p-4 : inexact-ok
+= atanpi tonearest binary128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b60cp-4 : inexact-ok
+= atanpi towardzero binary128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b60cp-4 : inexact-ok
+= atanpi upward binary128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b60cp-4 : inexact-ok
+= atanpi downward ibm128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b8p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b6p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b6p-4 : inexact-ok
+= atanpi upward ibm128 -0x1.ad4c0ap+0 : -0x5.42eebe541dff83f075ed4fb4b6p-4 : inexact-ok
+atanpi -0x3.eb8e18p+0
+= atanpi downward binary32 -0x3.eb8e18p+0 : -0x6.ba5afp-4 : inexact-ok
+= atanpi tonearest binary32 -0x3.eb8e18p+0 : -0x6.ba5afp-4 : inexact-ok
+= atanpi towardzero binary32 -0x3.eb8e18p+0 : -0x6.ba5ae8p-4 : inexact-ok
+= atanpi upward binary32 -0x3.eb8e18p+0 : -0x6.ba5ae8p-4 : inexact-ok
+= atanpi downward binary64 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb4p-4 : inexact-ok
+= atanpi tonearest binary64 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb4p-4 : inexact-ok
+= atanpi towardzero binary64 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fbp-4 : inexact-ok
+= atanpi upward binary64 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fbp-4 : inexact-ok
+= atanpi downward intel96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3edp-4 : inexact-ok
+= atanpi tonearest intel96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3edp-4 : inexact-ok
+= atanpi towardzero intel96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ec8p-4 : inexact-ok
+= atanpi upward intel96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ec8p-4 : inexact-ok
+= atanpi downward m68k96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3edp-4 : inexact-ok
+= atanpi tonearest m68k96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3edp-4 : inexact-ok
+= atanpi towardzero m68k96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ec8p-4 : inexact-ok
+= atanpi upward m68k96 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ec8p-4 : inexact-ok
+= atanpi downward binary128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc5672p-4 : inexact-ok
+= atanpi tonearest binary128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc5672p-4 : inexact-ok
+= atanpi towardzero binary128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc5671cp-4 : inexact-ok
+= atanpi upward binary128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc5671cp-4 : inexact-ok
+= atanpi downward ibm128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc568p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc568p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc566p-4 : inexact-ok
+= atanpi upward ibm128 -0x3.eb8e18p+0 : -0x6.ba5aef41e9fb3ece4eb52cc566p-4 : inexact-ok
+atanpi 0x3.53c188p+0
+= atanpi downward binary32 0x3.53c188p+0 : 0x6.8355cp-4 : inexact-ok
+= atanpi tonearest binary32 0x3.53c188p+0 : 0x6.8355cp-4 : inexact-ok
+= atanpi towardzero binary32 0x3.53c188p+0 : 0x6.8355cp-4 : inexact-ok
+= atanpi upward binary32 0x3.53c188p+0 : 0x6.8355c8p-4 : inexact-ok
+= atanpi downward binary64 0x3.53c188p+0 : 0x6.8355c1a796974p-4 : inexact-ok
+= atanpi tonearest binary64 0x3.53c188p+0 : 0x6.8355c1a796978p-4 : inexact-ok
+= atanpi towardzero binary64 0x3.53c188p+0 : 0x6.8355c1a796974p-4 : inexact-ok
+= atanpi upward binary64 0x3.53c188p+0 : 0x6.8355c1a796978p-4 : inexact-ok
+= atanpi downward intel96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi tonearest intel96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi towardzero intel96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi upward intel96 0x3.53c188p+0 : 0x6.8355c1a796977d08p-4 : inexact-ok
+= atanpi downward m68k96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi tonearest m68k96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi towardzero m68k96 0x3.53c188p+0 : 0x6.8355c1a796977dp-4 : inexact-ok
+= atanpi upward m68k96 0x3.53c188p+0 : 0x6.8355c1a796977d08p-4 : inexact-ok
+= atanpi downward binary128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299b74p-4 : inexact-ok
+= atanpi tonearest binary128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299b78p-4 : inexact-ok
+= atanpi towardzero binary128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299b74p-4 : inexact-ok
+= atanpi upward binary128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299b78p-4 : inexact-ok
+= atanpi downward ibm128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299ap-4 : inexact-ok
+= atanpi tonearest ibm128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299cp-4 : inexact-ok
+= atanpi towardzero ibm128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299ap-4 : inexact-ok
+= atanpi upward ibm128 0x3.53c188p+0 : 0x6.8355c1a796977d00f9aaa3299cp-4 : inexact-ok
+atanpi -0x1.58c83p+0
+= atanpi downward binary32 -0x1.58c83p+0 : -0x4.bf499p-4 : inexact-ok
+= atanpi tonearest binary32 -0x1.58c83p+0 : -0x4.bf499p-4 : inexact-ok
+= atanpi towardzero binary32 -0x1.58c83p+0 : -0x4.bf4988p-4 : inexact-ok
+= atanpi upward binary32 -0x1.58c83p+0 : -0x4.bf4988p-4 : inexact-ok
+= atanpi downward binary64 -0x1.58c83p+0 : -0x4.bf498c943b934p-4 : inexact-ok
+= atanpi tonearest binary64 -0x1.58c83p+0 : -0x4.bf498c943b93p-4 : inexact-ok
+= atanpi towardzero binary64 -0x1.58c83p+0 : -0x4.bf498c943b93p-4 : inexact-ok
+= atanpi upward binary64 -0x1.58c83p+0 : -0x4.bf498c943b93p-4 : inexact-ok
+= atanpi downward intel96 -0x1.58c83p+0 : -0x4.bf498c943b930b18p-4 : inexact-ok
+= atanpi tonearest intel96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi towardzero intel96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi upward intel96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi downward m68k96 -0x1.58c83p+0 : -0x4.bf498c943b930b18p-4 : inexact-ok
+= atanpi tonearest m68k96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi towardzero m68k96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi upward m68k96 -0x1.58c83p+0 : -0x4.bf498c943b930b1p-4 : inexact-ok
+= atanpi downward binary128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4c4p-4 : inexact-ok
+= atanpi tonearest binary128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4cp-4 : inexact-ok
+= atanpi towardzero binary128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4cp-4 : inexact-ok
+= atanpi upward binary128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4cp-4 : inexact-ok
+= atanpi downward ibm128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b6p-4 : inexact-ok
+= atanpi tonearest ibm128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4p-4 : inexact-ok
+= atanpi towardzero ibm128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4p-4 : inexact-ok
+= atanpi upward ibm128 -0x1.58c83p+0 : -0x4.bf498c943b930b1011b646f3b4p-4 : inexact-ok
+atanpi 0x1.626772p-1
+= atanpi downward binary32 0xb.133b9p-4 : 0x3.156898p-4 : inexact-ok
+= atanpi tonearest binary32 0xb.133b9p-4 : 0x3.156898p-4 : inexact-ok
+= atanpi towardzero binary32 0xb.133b9p-4 : 0x3.156898p-4 : inexact-ok
+= atanpi upward binary32 0xb.133b9p-4 : 0x3.15689cp-4 : inexact-ok
+= atanpi downward binary64 0xb.133b9p-4 : 0x3.156898f544dcap-4 : inexact-ok
+= atanpi tonearest binary64 0xb.133b9p-4 : 0x3.156898f544dcap-4 : inexact-ok
+= atanpi towardzero binary64 0xb.133b9p-4 : 0x3.156898f544dcap-4 : inexact-ok
+= atanpi upward binary64 0xb.133b9p-4 : 0x3.156898f544dccp-4 : inexact-ok
+= atanpi downward intel96 0xb.133b9p-4 : 0x3.156898f544dca52cp-4 : inexact-ok
+= atanpi tonearest intel96 0xb.133b9p-4 : 0x3.156898f544dca53p-4 : inexact-ok
+= atanpi towardzero intel96 0xb.133b9p-4 : 0x3.156898f544dca52cp-4 : inexact-ok
+= atanpi upward intel96 0xb.133b9p-4 : 0x3.156898f544dca53p-4 : inexact-ok
+= atanpi downward m68k96 0xb.133b9p-4 : 0x3.156898f544dca52cp-4 : inexact-ok
+= atanpi tonearest m68k96 0xb.133b9p-4 : 0x3.156898f544dca53p-4 : inexact-ok
+= atanpi towardzero m68k96 0xb.133b9p-4 : 0x3.156898f544dca52cp-4 : inexact-ok
+= atanpi upward m68k96 0xb.133b9p-4 : 0x3.156898f544dca53p-4 : inexact-ok
+= atanpi downward binary128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e1276ep-4 : inexact-ok
+= atanpi tonearest binary128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e1277p-4 : inexact-ok
+= atanpi towardzero binary128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e1276ep-4 : inexact-ok
+= atanpi upward binary128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e1277p-4 : inexact-ok
+= atanpi downward ibm128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e127p-4 : inexact-ok
+= atanpi tonearest ibm128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e127p-4 : inexact-ok
+= atanpi towardzero ibm128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e127p-4 : inexact-ok
+= atanpi upward ibm128 0xb.133b9p-4 : 0x3.156898f544dca52f89f818e128p-4 : inexact-ok
+atanpi min
+= atanpi downward binary32 0x4p-128 : 0x1.45f3p-128 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary32 0x4p-128 : 0x1.45f308p-128 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary32 0x4p-128 : 0x1.45f3p-128 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary32 0x4p-128 : 0x1.45f308p-128 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 0x4p-128 : 0x1.45f306dc9c882p-128 : inexact-ok
+= atanpi tonearest binary64 0x4p-128 : 0x1.45f306dc9c883p-128 : inexact-ok
+= atanpi towardzero binary64 0x4p-128 : 0x1.45f306dc9c882p-128 : inexact-ok
+= atanpi upward binary64 0x4p-128 : 0x1.45f306dc9c883p-128 : inexact-ok
+= atanpi downward intel96 0x4p-128 : 0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi tonearest intel96 0x4p-128 : 0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi towardzero intel96 0x4p-128 : 0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi upward intel96 0x4p-128 : 0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi downward m68k96 0x4p-128 : 0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi tonearest m68k96 0x4p-128 : 0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi towardzero m68k96 0x4p-128 : 0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi upward m68k96 0x4p-128 : 0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi downward binary128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea69p-128 : inexact-ok
+= atanpi tonearest binary128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea6ap-128 : inexact-ok
+= atanpi towardzero binary128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea69p-128 : inexact-ok
+= atanpi upward binary128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea6ap-128 : inexact-ok
+= atanpi downward ibm128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3eap-128 : inexact-ok
+= atanpi tonearest ibm128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea8p-128 : inexact-ok
+= atanpi towardzero ibm128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3eap-128 : inexact-ok
+= atanpi upward ibm128 0x4p-128 : 0x1.45f306dc9c882a53f84eafa3ea8p-128 : inexact-ok
+= atanpi downward binary64 0x4p-1024 : 0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary64 0x4p-1024 : 0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary64 0x4p-1024 : 0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary64 0x4p-1024 : 0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x4p-1024 : 0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi tonearest intel96 0x4p-1024 : 0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi towardzero intel96 0x4p-1024 : 0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi upward intel96 0x4p-1024 : 0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi downward m68k96 0x4p-1024 : 0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi tonearest m68k96 0x4p-1024 : 0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi towardzero m68k96 0x4p-1024 : 0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi upward m68k96 0x4p-1024 : 0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi downward binary128 0x4p-1024 : 0x1.45f306dc9c882a53f84eafa3ea69p-1024 : inexact-ok
+= atanpi tonearest binary128 0x4p-1024 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1024 : inexact-ok
+= atanpi towardzero binary128 0x4p-1024 : 0x1.45f306dc9c882a53f84eafa3ea69p-1024 : inexact-ok
+= atanpi upward binary128 0x4p-1024 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1024 : inexact-ok
+= atanpi downward ibm128 0x4p-1024 : 0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest ibm128 0x4p-1024 : 0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero ibm128 0x4p-1024 : 0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi upward ibm128 0x4p-1024 : 0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x4p-16384 : 0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest intel96 0x4p-16384 : 0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero intel96 0x4p-16384 : 0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward intel96 0x4p-16384 : 0x1.45f306dc9c882a58p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 0x4p-16384 : 0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 0x4p-16384 : 0x1.45f306dc9c882a54p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 0x4p-16384 : 0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 0x4p-16384 : 0x1.45f306dc9c882a54p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 0x4p-16384 : 0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 0x4p-16384 : 0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 0x4p-16384 : 0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 0x4p-16384 : 0x1.45f306dc9c882a53f84eafa3ea6cp-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest intel96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero intel96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward intel96 0x2p-16384 : 0xa.2f9836e4e44153p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 0x2p-16384 : 0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 0x2p-16384 : 0xa.2f9836e4e44152cp-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 0x2p-16384 : 0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 0x2p-16384 : 0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 0x2p-16384 : 0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 0x2p-16384 : 0xa.2f9836e4e441529fc2757d1f538p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 0x8p-972 : 0x2.8be60db939104p-972 : inexact-ok
+= atanpi tonearest binary64 0x8p-972 : 0x2.8be60db939106p-972 : inexact-ok
+= atanpi towardzero binary64 0x8p-972 : 0x2.8be60db939104p-972 : inexact-ok
+= atanpi upward binary64 0x8p-972 : 0x2.8be60db939106p-972 : inexact-ok
+= atanpi downward intel96 0x8p-972 : 0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi tonearest intel96 0x8p-972 : 0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi towardzero intel96 0x8p-972 : 0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi upward intel96 0x8p-972 : 0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi downward m68k96 0x8p-972 : 0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi tonearest m68k96 0x8p-972 : 0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi towardzero m68k96 0x8p-972 : 0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi upward m68k96 0x8p-972 : 0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi downward binary128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4d2p-972 : inexact-ok
+= atanpi tonearest binary128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4d4p-972 : inexact-ok
+= atanpi towardzero binary128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4d2p-972 : inexact-ok
+= atanpi upward binary128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4d4p-972 : inexact-ok
+= atanpi downward ibm128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest ibm128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero ibm128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+= atanpi upward ibm128 0x8p-972 : 0x2.8be60db9391054a7f09d5f47d8p-972 : inexact-ok underflow errno-erange-ok
+atanpi -min
+= atanpi downward binary32 -0x4p-128 : -0x1.45f308p-128 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary32 -0x4p-128 : -0x1.45f308p-128 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary32 -0x4p-128 : -0x1.45f3p-128 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary32 -0x4p-128 : -0x1.45f3p-128 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 -0x4p-128 : -0x1.45f306dc9c883p-128 : inexact-ok
+= atanpi tonearest binary64 -0x4p-128 : -0x1.45f306dc9c883p-128 : inexact-ok
+= atanpi towardzero binary64 -0x4p-128 : -0x1.45f306dc9c882p-128 : inexact-ok
+= atanpi upward binary64 -0x4p-128 : -0x1.45f306dc9c882p-128 : inexact-ok
+= atanpi downward intel96 -0x4p-128 : -0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi tonearest intel96 -0x4p-128 : -0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi towardzero intel96 -0x4p-128 : -0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi upward intel96 -0x4p-128 : -0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi downward m68k96 -0x4p-128 : -0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi tonearest m68k96 -0x4p-128 : -0x1.45f306dc9c882a54p-128 : inexact-ok
+= atanpi towardzero m68k96 -0x4p-128 : -0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi upward m68k96 -0x4p-128 : -0x1.45f306dc9c882a52p-128 : inexact-ok
+= atanpi downward binary128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea6ap-128 : inexact-ok
+= atanpi tonearest binary128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea6ap-128 : inexact-ok
+= atanpi towardzero binary128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea69p-128 : inexact-ok
+= atanpi upward binary128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea69p-128 : inexact-ok
+= atanpi downward ibm128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea8p-128 : inexact-ok
+= atanpi tonearest ibm128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3ea8p-128 : inexact-ok
+= atanpi towardzero ibm128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3eap-128 : inexact-ok
+= atanpi upward ibm128 -0x4p-128 : -0x1.45f306dc9c882a53f84eafa3eap-128 : inexact-ok
+= atanpi downward binary64 -0x4p-1024 : -0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary64 -0x4p-1024 : -0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary64 -0x4p-1024 : -0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary64 -0x4p-1024 : -0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 -0x4p-1024 : -0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi tonearest intel96 -0x4p-1024 : -0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi towardzero intel96 -0x4p-1024 : -0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi upward intel96 -0x4p-1024 : -0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi downward m68k96 -0x4p-1024 : -0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi tonearest m68k96 -0x4p-1024 : -0x1.45f306dc9c882a54p-1024 : inexact-ok
+= atanpi towardzero m68k96 -0x4p-1024 : -0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi upward m68k96 -0x4p-1024 : -0x1.45f306dc9c882a52p-1024 : inexact-ok
+= atanpi downward binary128 -0x4p-1024 : -0x1.45f306dc9c882a53f84eafa3ea6ap-1024 : inexact-ok
+= atanpi tonearest binary128 -0x4p-1024 : -0x1.45f306dc9c882a53f84eafa3ea6ap-1024 : inexact-ok
+= atanpi towardzero binary128 -0x4p-1024 : -0x1.45f306dc9c882a53f84eafa3ea69p-1024 : inexact-ok
+= atanpi upward binary128 -0x4p-1024 : -0x1.45f306dc9c882a53f84eafa3ea69p-1024 : inexact-ok
+= atanpi downward ibm128 -0x4p-1024 : -0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest ibm128 -0x4p-1024 : -0x1.45f306dc9c884p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero ibm128 -0x4p-1024 : -0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi upward ibm128 -0x4p-1024 : -0x1.45f306dc9c88p-1024 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 -0x4p-16384 : -0x1.45f306dc9c882a58p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest intel96 -0x4p-16384 : -0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero intel96 -0x4p-16384 : -0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward intel96 -0x4p-16384 : -0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 -0x4p-16384 : -0x1.45f306dc9c882a54p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 -0x4p-16384 : -0x1.45f306dc9c882a54p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 -0x4p-16384 : -0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 -0x4p-16384 : -0x1.45f306dc9c882a5p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 -0x4p-16384 : -0x1.45f306dc9c882a53f84eafa3ea6cp-16384 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 -0x4p-16384 : -0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 -0x4p-16384 : -0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 -0x4p-16384 : -0x1.45f306dc9c882a53f84eafa3ea68p-16384 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 -0x2p-16384 : -0xa.2f9836e4e44153p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest intel96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero intel96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward intel96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 -0x2p-16384 : -0xa.2f9836e4e44152cp-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 -0x2p-16384 : -0xa.2f9836e4e441528p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 -0x2p-16384 : -0xa.2f9836e4e441529fc2757d1f538p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 -0x2p-16384 : -0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 -0x2p-16384 : -0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 -0x2p-16384 : -0xa.2f9836e4e441529fc2757d1f534p-16388 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 -0x8p-972 : -0x2.8be60db939106p-972 : inexact-ok
+= atanpi tonearest binary64 -0x8p-972 : -0x2.8be60db939106p-972 : inexact-ok
+= atanpi towardzero binary64 -0x8p-972 : -0x2.8be60db939104p-972 : inexact-ok
+= atanpi upward binary64 -0x8p-972 : -0x2.8be60db939104p-972 : inexact-ok
+= atanpi downward intel96 -0x8p-972 : -0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi tonearest intel96 -0x8p-972 : -0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi towardzero intel96 -0x8p-972 : -0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi upward intel96 -0x8p-972 : -0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi downward m68k96 -0x8p-972 : -0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi tonearest m68k96 -0x8p-972 : -0x2.8be60db9391054a8p-972 : inexact-ok
+= atanpi towardzero m68k96 -0x8p-972 : -0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi upward m68k96 -0x8p-972 : -0x2.8be60db9391054a4p-972 : inexact-ok
+= atanpi downward binary128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4d4p-972 : inexact-ok
+= atanpi tonearest binary128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4d4p-972 : inexact-ok
+= atanpi towardzero binary128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4d2p-972 : inexact-ok
+= atanpi upward binary128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4d2p-972 : inexact-ok
+= atanpi downward ibm128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d8p-972 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest ibm128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero ibm128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+= atanpi upward ibm128 -0x8p-972 : -0x2.8be60db9391054a7f09d5f47d4p-972 : inexact-ok underflow errno-erange-ok
+atanpi min_subnorm
+= atanpi downward binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary32 0x8p-152 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary32 0x8p-152 : 0x8p-152 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi tonearest binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi towardzero binary64 0x8p-152 : 0x2.8be60db939104p-152 : inexact-ok
+= atanpi upward binary64 0x8p-152 : 0x2.8be60db939106p-152 : inexact-ok
+= atanpi downward intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero intel96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward intel96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi tonearest m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero m68k96 0x8p-152 : 0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward m68k96 0x8p-152 : 0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi downward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi tonearest binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi towardzero binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi upward binary128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi downward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi tonearest ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi towardzero ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi upward ibm128 0x8p-152 : 0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi downward binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary64 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary64 0x4p-1076 : 0x4p-1076 : inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi tonearest intel96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero intel96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward intel96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi downward m68k96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi tonearest m68k96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero m68k96 0x4p-1076 : 0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward m68k96 0x4p-1076 : 0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi downward binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi tonearest binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi towardzero binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi upward binary128 0x4p-1076 : 0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi downward ibm128 0x4p-1076 : 0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi tonearest ibm128 0x4p-1076 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero ibm128 0x4p-1076 : 0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi upward ibm128 0x4p-1076 : 0x4p-1076 : xfail:ibm128-libgcc inexact-ok underflow errno-erange-ok
+= atanpi downward intel96 0x8p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest intel96 0x8p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero intel96 0x8p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward intel96 0x8p-16448 : 0x8p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 0x8p-16448 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 0x8p-16448 : 0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 0x8p-16448 : 0x0p+0 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 0x8p-16448 : 0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 0x8p-16448 : 0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 0x8p-16448 : 0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 0x8p-16448 : 0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 0x8p-16448 : 0x2.8be60db93914p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 0x4p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest m68k96 0x4p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero m68k96 0x4p-16448 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward m68k96 0x4p-16448 : 0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 0x4p-16448 : 0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 0x4p-16448 : 0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 0x4p-16448 : 0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 0x4p-16448 : 0x1.45f306dc9c8cp-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 0x4p-16496 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi tonearest binary128 0x4p-16496 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary128 0x4p-16496 : 0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary128 0x4p-16496 : 0x4p-16496 : inexact-ok underflow errno-erange-ok
+atanpi -min_subnorm
+= atanpi downward binary32 -0x8p-152 : -0x8p-152 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary32 -0x8p-152 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary32 -0x8p-152 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary32 -0x8p-152 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi downward binary64 -0x8p-152 : -0x2.8be60db939106p-152 : inexact-ok
+= atanpi tonearest binary64 -0x8p-152 : -0x2.8be60db939106p-152 : inexact-ok
+= atanpi towardzero binary64 -0x8p-152 : -0x2.8be60db939104p-152 : inexact-ok
+= atanpi upward binary64 -0x8p-152 : -0x2.8be60db939104p-152 : inexact-ok
+= atanpi downward intel96 -0x8p-152 : -0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi tonearest intel96 -0x8p-152 : -0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero intel96 -0x8p-152 : -0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward intel96 -0x8p-152 : -0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi downward m68k96 -0x8p-152 : -0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi tonearest m68k96 -0x8p-152 : -0x2.8be60db9391054a8p-152 : inexact-ok
+= atanpi towardzero m68k96 -0x8p-152 : -0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi upward m68k96 -0x8p-152 : -0x2.8be60db9391054a4p-152 : inexact-ok
+= atanpi downward binary128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi tonearest binary128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4d4p-152 : inexact-ok
+= atanpi towardzero binary128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi upward binary128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4d2p-152 : inexact-ok
+= atanpi downward ibm128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi tonearest ibm128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d5p-152 : inexact-ok
+= atanpi towardzero ibm128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi upward ibm128 -0x8p-152 : -0x2.8be60db9391054a7f09d5f47d4p-152 : inexact-ok
+= atanpi downward binary64 -0x4p-1076 : -0x4p-1076 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary64 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi downward intel96 -0x4p-1076 : -0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi tonearest intel96 -0x4p-1076 : -0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero intel96 -0x4p-1076 : -0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward intel96 -0x4p-1076 : -0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi downward m68k96 -0x4p-1076 : -0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi tonearest m68k96 -0x4p-1076 : -0x1.45f306dc9c882a54p-1076 : inexact-ok
+= atanpi towardzero m68k96 -0x4p-1076 : -0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi upward m68k96 -0x4p-1076 : -0x1.45f306dc9c882a52p-1076 : inexact-ok
+= atanpi downward binary128 -0x4p-1076 : -0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi tonearest binary128 -0x4p-1076 : -0x1.45f306dc9c882a53f84eafa3ea6ap-1076 : inexact-ok
+= atanpi towardzero binary128 -0x4p-1076 : -0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi upward binary128 -0x4p-1076 : -0x1.45f306dc9c882a53f84eafa3ea69p-1076 : inexact-ok
+= atanpi downward ibm128 -0x4p-1076 : -0x4p-1076 : xfail:ibm128-libgcc inexact-ok underflow errno-erange-ok
+= atanpi tonearest ibm128 -0x4p-1076 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero ibm128 -0x4p-1076 : -0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi upward ibm128 -0x4p-1076 : -0x0p+0 : xfail:ibm128-libgcc inexact-ok underflow errno-erange
+= atanpi downward intel96 -0x8p-16448 : -0x8p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest intel96 -0x8p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero intel96 -0x8p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward intel96 -0x8p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi downward m68k96 -0x8p-16448 : -0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 -0x8p-16448 : -0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero m68k96 -0x8p-16448 : -0x0p+0 : inexact-ok underflow errno-erange-ok
+= atanpi upward m68k96 -0x8p-16448 : -0x0p+0 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 -0x8p-16448 : -0x2.8be60db93914p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 -0x8p-16448 : -0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 -0x8p-16448 : -0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 -0x8p-16448 : -0x2.8be60db9391p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward m68k96 -0x4p-16448 : -0x4p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest m68k96 -0x4p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero m68k96 -0x4p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward m68k96 -0x4p-16448 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi downward binary128 -0x4p-16448 : -0x1.45f306dc9c8cp-16448 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 -0x4p-16448 : -0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi towardzero binary128 -0x4p-16448 : -0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi upward binary128 -0x4p-16448 : -0x1.45f306dc9c88p-16448 : inexact-ok underflow errno-erange-ok
+= atanpi downward binary128 -0x4p-16496 : -0x4p-16496 : inexact-ok underflow errno-erange-ok
+= atanpi tonearest binary128 -0x4p-16496 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi towardzero binary128 -0x4p-16496 : -0x0p+0 : inexact-ok underflow errno-erange
+= atanpi upward binary128 -0x4p-16496 : -0x0p+0 : inexact-ok underflow errno-erange
diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h
index 7c6ca03..90508ca 100644
--- a/math/bits/mathcalls.h
+++ b/math/bits/mathcalls.h
@@ -70,6 +70,8 @@ __MATHCALL_VEC (tan,, (_Mdouble_ __x));
__MATHCALL (acospi,, (_Mdouble_ __x));
/* Arc sine of X, divided by pi. */
__MATHCALL (asinpi,, (_Mdouble_ __x));
+/* Arc tangent of X, divided by pi. */
+__MATHCALL (atanpi,, (_Mdouble_ __x));
/* Cosine of pi * X. */
__MATHCALL (cospi,, (_Mdouble_ __x));
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index 4185f46..4cedf59 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -539,6 +539,7 @@ static test_function test_functions[] =
FUNC_mpfr_f_f ("atan", mpfr_atan, false),
FUNC_mpfr_ff_f ("atan2", mpfr_atan2, false),
FUNC_mpfr_f_f ("atanh", mpfr_atanh, false),
+ FUNC_mpfr_f_f ("atanpi", mpfr_atanpi, false),
FUNC_mpc_c_f ("cabs", mpc_abs, false),
FUNC_mpc_c_c ("cacos", mpc_acos, false),
FUNC_mpc_c_c ("cacosh", mpc_acosh, false),
diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py
index a04a430..ef4944b 100755
--- a/math/gen-tgmath-tests.py
+++ b/math/gen-tgmath-tests.py
@@ -744,6 +744,7 @@ class Tests(object):
# TS 18661-4 functions.
self.add_tests('acospi', 'r', ['r'])
self.add_tests('asinpi', 'r', ['r'])
+ self.add_tests('atanpi', 'r', ['r'])
self.add_tests('cospi', 'r', ['r'])
self.add_tests('exp10', 'r', ['r'])
self.add_tests('exp2m1', 'r', ['r'])
diff --git a/math/libm-test-atanpi.inc b/math/libm-test-atanpi.inc
new file mode 100644
index 0000000..d24919e
--- /dev/null
+++ b/math/libm-test-atanpi.inc
@@ -0,0 +1,49 @@
+/* Test atanpi.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include "libm-test-driver.c"
+
+static const struct test_f_f_data atanpi_test_data[] =
+ {
+ TEST_f_f (atanpi, plus_infty, 0.5, ERRNO_UNCHANGED),
+ TEST_f_f (atanpi, minus_infty, -0.5, ERRNO_UNCHANGED),
+ TEST_f_f (atanpi, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (atanpi, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_f (atanpi, snan_value, qnan_value, INVALID_EXCEPTION),
+ TEST_f_f (atanpi, -snan_value, qnan_value, INVALID_EXCEPTION),
+
+ AUTO_TESTS_f_f (atanpi),
+ };
+
+static void
+atanpi_test (void)
+{
+ ALL_RM_TEST (atanpi, 0, atanpi_test_data, RUN_TEST_LOOP_f_f, END);
+}
+
+static void
+do_test (void)
+{
+ atanpi_test ();
+}
+
+/*
+ * Local Variables:
+ * mode:c
+ * End:
+ */
diff --git a/math/s_atanpi_template.c b/math/s_atanpi_template.c
new file mode 100644
index 0000000..9773215
--- /dev/null
+++ b/math/s_atanpi_template.c
@@ -0,0 +1,39 @@
+/* Return arc tangent of X, divided by pi.
+ Copyright (C) 2024 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <errno.h>
+#include <math.h>
+#include <math-narrow-eval.h>
+#include <math-underflow.h>
+
+FLOAT
+M_DECL_FUNC (__atanpi) (FLOAT x)
+{
+ FLOAT ret = math_narrow_eval (M_SUF (__atan) (x) / M_MLIT (M_PI));
+ if (__glibc_likely (!isnan (x)))
+ math_check_force_underflow (ret);
+ if (x != 0 && ret == 0)
+ __set_errno (ERANGE);
+ /* Ensure that rounding away from zero for both atan and the
+ division cannot yield a return value from atanpi with absolute
+ value greater than 0.5. */
+ return (isgreater (M_FABS (ret), M_LIT (0.5))
+ ? M_COPYSIGN (M_LIT (0.5), ret)
+ : ret);
+}
+declare_mgen_alias (__atanpi, atanpi);
diff --git a/math/test-tgmath.c b/math/test-tgmath.c
index b3a948d..79cb58e 100644
--- a/math/test-tgmath.c
+++ b/math/test-tgmath.c
@@ -48,7 +48,7 @@ volatile int count_cdouble;
volatile int count_cfloat;
volatile int count_cldouble;
-#define NCALLS 178
+#define NCALLS 180
#define NCALLS_INT 4
#define NCCALLS 47
@@ -241,6 +241,7 @@ F(compile_test) (void)
b = asin (asin (a));
a = tan (tan (x));
b = tanpi (tanpi (x));
+ b = atanpi (atanpi (a));
b = atan (atan (a));
c = atan2 (atan2 (a, c), atan2 (b, x));
a = cosh (cosh (x));
@@ -365,6 +366,7 @@ F(compile_test) (void)
a = tan (y);
a = tanpi (y);
a = atan (y);
+ a = atanpi (y);
a = atan2 (y, y);
a = cosh (y);
a = acosh (y);
@@ -566,6 +568,14 @@ TYPE
}
TYPE
+(F(atanpi)) (TYPE x)
+{
+ ++count;
+ P ();
+ return x;
+}
+
+TYPE
(F(cosh)) (TYPE x)
{
++count;
diff --git a/math/tgmath.h b/math/tgmath.h
index 4e23d49..9260d07 100644
--- a/math/tgmath.h
+++ b/math/tgmath.h
@@ -822,6 +822,8 @@
# define acospi(Val) __TGMATH_UNARY_REAL_ONLY (Val, acospi)
/* Arc sine of X, divided by pi.. */
# define asinpi(Val) __TGMATH_UNARY_REAL_ONLY (Val, asinpi)
+/* Arc tangent of X, divided by pi. */
+# define atanpi(Val) __TGMATH_UNARY_REAL_ONLY (Val, atanpi)
/* Cosine of pi * X. */
# define cospi(Val) __TGMATH_UNARY_REAL_ONLY (Val, cospi)
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
index 3e6284e..b7424cd 100644
--- a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
@@ -200,6 +200,30 @@ float: 1
float128: 4
ldouble: 5
+Function: "atanpi":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "atanpi_downward":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "atanpi_towardzero":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "atanpi_upward":
+double: 1
+float: 1
+float128: 2
+ldouble: 1
+
Function: "cabs":
double: 1
float128: 1
diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
index 0f3b65c..251bcd4 100644
--- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions
+++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions
@@ -147,6 +147,7 @@ libm {
GLIBC_2.41 {
__acospiieee128;
__asinpiieee128;
+ __atanpiieee128;
__cospiieee128;
__sinpiieee128;
__tanpiieee128;
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index 0cc4d84..1acde0b 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -23,6 +23,7 @@ libnldbl-calls = \
atan \
atan2 \
atanh \
+ atanpi \
cabs \
cacos \
cacosh \
@@ -266,6 +267,7 @@ CFLAGS-nldbl-asinpi.c = -fno-builtin-asinpil
CFLAGS-nldbl-atan.c = -fno-builtin-atanl
CFLAGS-nldbl-atan2.c = -fno-builtin-atan2l
CFLAGS-nldbl-atanh.c = -fno-builtin-atanhl
+CFLAGS-nldbl-atanpi.c = -fno-builtin-atanpil
CFLAGS-nldbl-cabs.c = -fno-builtin-cabsl
CFLAGS-nldbl-cacos.c = -fno-builtin-cacosl
CFLAGS-nldbl-cacosh.c = -fno-builtin-cacoshl
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c b/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c
new file mode 100644
index 0000000..259397d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atanpil (double x)
+{
+ return atanpi (x);
+}
diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist
index c194c9a..77df9bb 100644
--- a/sysdeps/mach/hurd/i386/libm.abilist
+++ b/sysdeps/mach/hurd/i386/libm.abilist
@@ -1237,6 +1237,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/mach/hurd/x86_64/libm.abilist b/sysdeps/mach/hurd/x86_64/libm.abilist
index 16d781a..6957af5 100644
--- a/sysdeps/mach/hurd/x86_64/libm.abilist
+++ b/sysdeps/mach/hurd/x86_64/libm.abilist
@@ -1094,6 +1094,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile
index 679b271..aa44185 100644
--- a/sysdeps/powerpc/nofpu/Makefile
+++ b/sysdeps/powerpc/nofpu/Makefile
@@ -45,6 +45,7 @@ CFLAGS-s_acospil.c += -fno-builtin-fabsl
CFLAGS-w_asinl_compat.c += -fno-builtin-fabsl
CFLAGS-s_asinpil.c += -fno-builtin-fabsl
CFLAGS-w_atanhl_compat.c += -fno-builtin-fabsl
+CFLAGS-s_atanpil.c += -fno-builtin-fabsl
CFLAGS-w_j0l_compat.c += -fno-builtin-fabsl
CFLAGS-w_j1l_compat.c += -fno-builtin-fabsl
CFLAGS-e_lgammal_r.c += -fno-builtin-fabsl
diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
index 165056e..2e2956b 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist
@@ -1205,6 +1205,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist
index 0cf0ee6..234486d 100644
--- a/sysdeps/unix/sysv/linux/alpha/libm.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist
@@ -1364,6 +1364,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist
index fc38366..0c9520e4 100644
--- a/sysdeps/unix/sysv/linux/arc/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arc/libm.abilist
@@ -799,6 +799,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
index 67ca2d5..5e73798 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
index 67ca2d5..5e73798 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist
index f006214..980d4be 100644
--- a/sysdeps/unix/sysv/linux/csky/libm.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libm.abilist
@@ -865,6 +865,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist
index cd02445..e17b2c0 100644
--- a/sysdeps/unix/sysv/linux/hppa/libm.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist
index 82189f5..0c72e27 100644
--- a/sysdeps/unix/sysv/linux/i386/libm.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libm.abilist
@@ -1244,6 +1244,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
index c3608c6..84a0964 100644
--- a/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
@@ -1084,6 +1084,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
index 67ca2d5..5e73798 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
index 8ce5f54..d65ece0 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
@@ -926,6 +926,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
index 5e5c142..85710af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
index 5e5c142..85710af 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
index 8b6efc1..fd87c30 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
index 1896db8..b16a496 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
@@ -1205,6 +1205,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/or1k/libm.abilist b/sysdeps/unix/sysv/linux/or1k/libm.abilist
index 706cd57..cfac64e 100644
--- a/sysdeps/unix/sysv/linux/or1k/libm.abilist
+++ b/sysdeps/unix/sysv/linux/or1k/libm.abilist
@@ -799,6 +799,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
index 903398a..19352a5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
@@ -1037,6 +1037,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
index b03908a..54a4d38 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
@@ -1036,6 +1036,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
index e9b090f..4c5a923 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
@@ -1030,6 +1030,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
index 3696a27..a4e04e5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
@@ -1368,6 +1368,7 @@ GLIBC_2.40 logp1f64x F
GLIBC_2.40 logp1l F
GLIBC_2.41 __acospiieee128 F
GLIBC_2.41 __asinpiieee128 F
+GLIBC_2.41 __atanpiieee128 F
GLIBC_2.41 __cospiieee128 F
GLIBC_2.41 __sinpiieee128 F
GLIBC_2.41 __tanpiieee128 F
@@ -1387,6 +1388,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
index 723f761..f643888 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
@@ -1084,6 +1084,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
index 12a497e..ee4d03e 100644
--- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
@@ -1181,6 +1181,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
index d2503a3..93d0c0f 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
@@ -1308,6 +1308,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
index 7c6936e..4d7a1a9 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
@@ -1308,6 +1308,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
index e93be4c..7dd0342 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
index e93be4c..7dd0342 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist
@@ -890,6 +890,12 @@ GLIBC_2.41 asinpif32 F
GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif32 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
index c763c55..c56e17b 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
@@ -1315,6 +1315,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
index 4e4beab..c6cc55e 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
@@ -1205,6 +1205,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
index 8ba0a95..add8e98 100644
--- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
@@ -1238,6 +1238,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
index 7defe5d..c976d6b 100644
--- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
@@ -1238,6 +1238,14 @@ GLIBC_2.41 asinpif32x F
GLIBC_2.41 asinpif64 F
GLIBC_2.41 asinpif64x F
GLIBC_2.41 asinpil F
+GLIBC_2.41 atanpi F
+GLIBC_2.41 atanpif F
+GLIBC_2.41 atanpif128 F
+GLIBC_2.41 atanpif32 F
+GLIBC_2.41 atanpif32x F
+GLIBC_2.41 atanpif64 F
+GLIBC_2.41 atanpif64x F
+GLIBC_2.41 atanpil F
GLIBC_2.41 cospi F
GLIBC_2.41 cospif F
GLIBC_2.41 cospif128 F
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 3d6e0d7..1ff2f8b 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -353,6 +353,30 @@ float: 1
Function: "atanh_vlen8_avx2":
float: 1
+Function: "atanpi":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "atanpi_downward":
+double: 1
+float: 2
+float128: 1
+ldouble: 1
+
+Function: "atanpi_towardzero":
+double: 1
+float: 1
+float128: 1
+ldouble: 1
+
+Function: "atanpi_upward":
+double: 1
+float: 1
+float128: 2
+ldouble: 1
+
Function: "cabs":
double: 1
float128: 1