From ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 11 Dec 2024 21:51:49 +0000 Subject: Implement C23 atanpi C23 adds various 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. --- NEWS | 2 +- manual/math.texi | 14 + math/Makefile | 6 + math/Versions | 2 + math/auto-libm-test-in | 40 + math/auto-libm-test-out-atanpi | 1379 ++++++++++++++++++++ math/bits/mathcalls.h | 2 + math/gen-auto-libm-tests.c | 1 + math/gen-tgmath-tests.py | 1 + math/libm-test-atanpi.inc | 49 + math/s_atanpi_template.c | 39 + math/test-tgmath.c | 12 +- math/tgmath.h | 2 + sysdeps/i386/i686/fpu/multiarch/libm-test-ulps | 24 + sysdeps/ieee754/ldbl-128ibm-compat/Versions | 1 + sysdeps/ieee754/ldbl-opt/Makefile | 2 + sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c | 8 + sysdeps/mach/hurd/i386/libm.abilist | 8 + sysdeps/mach/hurd/x86_64/libm.abilist | 8 + sysdeps/powerpc/nofpu/Makefile | 1 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 8 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 8 + sysdeps/unix/sysv/linux/arc/libm.abilist | 6 + sysdeps/unix/sysv/linux/arm/be/libm.abilist | 6 + sysdeps/unix/sysv/linux/arm/le/libm.abilist | 6 + sysdeps/unix/sysv/linux/csky/libm.abilist | 6 + sysdeps/unix/sysv/linux/hppa/libm.abilist | 6 + sysdeps/unix/sysv/linux/i386/libm.abilist | 8 + .../unix/sysv/linux/loongarch/lp64/libm.abilist | 8 + sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 6 + sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 6 + sysdeps/unix/sysv/linux/microblaze/be/libm.abilist | 6 + sysdeps/unix/sysv/linux/microblaze/le/libm.abilist | 6 + sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 6 + sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 8 + sysdeps/unix/sysv/linux/or1k/libm.abilist | 6 + .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 6 + .../linux/powerpc/powerpc32/nofpu/libm.abilist | 6 + .../sysv/linux/powerpc/powerpc64/be/libm.abilist | 6 + .../sysv/linux/powerpc/powerpc64/le/libm.abilist | 9 + sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist | 8 + sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist | 8 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 8 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 8 + sysdeps/unix/sysv/linux/sh/be/libm.abilist | 6 + sysdeps/unix/sysv/linux/sh/le/libm.abilist | 6 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 8 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 8 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 8 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 8 + sysdeps/x86_64/fpu/libm-test-ulps | 24 + 51 files changed, 1832 insertions(+), 2 deletions(-) create mode 100644 math/auto-libm-test-out-atanpi create mode 100644 math/libm-test-atanpi.inc create mode 100644 math/s_atanpi_template.c create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-atanpi.c diff --git a/NEWS b/NEWS index 4d180a37d2..2f0d2c89cc 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 . - - 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 32c5c057e0..e148fd83ba 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 87ff79b269..6f0d2108b2 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 a7b79b0d6c..3abf90da82 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 809df5ce09..ebea756d50 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 0000000000..b6e8abdd09 --- /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.8be60db9391054