From ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 11 Dec 2024 21:51:49 +0000 Subject: [PATCH] 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 + .../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 + .../sysv/linux/loongarch/lp64/libm.abilist | 8 + .../sysv/linux/m68k/coldfire/libm.abilist | 6 + .../unix/sysv/linux/m68k/m680x0/libm.abilist | 6 + .../sysv/linux/microblaze/be/libm.abilist | 6 + .../sysv/linux/microblaze/le/libm.abilist | 6 + .../unix/sysv/linux/mips/mips32/libm.abilist | 6 + .../unix/sysv/linux/mips/mips64/libm.abilist | 8 + sysdeps/unix/sysv/linux/or1k/libm.abilist | 6 + .../linux/powerpc/powerpc32/fpu/libm.abilist | 6 + .../powerpc/powerpc32/nofpu/libm.abilist | 6 + .../linux/powerpc/powerpc64/be/libm.abilist | 6 + .../linux/powerpc/powerpc64/le/libm.abilist | 9 + .../unix/sysv/linux/riscv/rv32/libm.abilist | 8 + .../unix/sysv/linux/riscv/rv64/libm.abilist | 8 + .../unix/sysv/linux/s390/s390-32/libm.abilist | 8 + .../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 + .../sysv/linux/sparc/sparc32/libm.abilist | 8 + .../sysv/linux/sparc/sparc64/libm.abilist | 8 + .../unix/sysv/linux/x86_64/64/libm.abilist | 8 + .../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.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 7c6ca03043..90508ca907 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 4185f46c16..4cedf5967f 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 a04a43018a..ef4944b67e 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 0000000000..d24919e471 --- /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 + . */ + +#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 0000000000..9773215ae9 --- /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 + . */ + +#include +#include +#include +#include + +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 b3a948d7a0..79cb58e5a7 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); @@ -565,6 +567,14 @@ TYPE return x + y; } +TYPE +(F(atanpi)) (TYPE x) +{ + ++count; + P (); + return x; +} + TYPE (F(cosh)) (TYPE x) { diff --git a/math/tgmath.h b/math/tgmath.h index 4e23d49412..9260d0779c 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 3e6284e021..b7424cd609 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 0f3b65ca2a..251bcd48e3 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 0cc4d84da1..1acde0be50 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 0000000000..259397d81e --- /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 c194c9ae0c..77df9bbf33 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 16d781a88e..6957af599d 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 679b271025..aa44185e95 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 165056eef1..2e2956be44 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 0cf0ee6ae9..234486dc15 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 fc383663af..0c9520e406 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 67ca2d54b8..5e7379841a 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 67ca2d54b8..5e7379841a 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 f006214fde..980d4beeb2 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 cd02445c5e..e17b2c066e 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 82189f5a26..0c72e275f5 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 c3608c624f..84a09649f9 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 67ca2d54b8..5e7379841a 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 8ce5f544a1..d65ece0eac 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 5e5c14216c..85710af9af 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 5e5c14216c..85710af9af 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 8b6efc1740..fd87c30ad9 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 1896db87f3..b16a4963f4 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 706cd5719b..cfac64e2b9 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 903398aed4..19352a505a 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 b03908a7cb..54a4d38aeb 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 e9b090f52b..4c5a9239ab 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 3696a27e0e..a4e04e5143 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 723f761aa8..f643888914 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 12a497e719..ee4d03ea96 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 d2503a3db9..93d0c0f009 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 7c6936ec0f..4d7a1a9b7d 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 e93be4c898..7dd0342e50 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 e93be4c898..7dd0342e50 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 c763c5583b..c56e17b2e9 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 4e4beab41e..c6cc55ec74 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 8ba0a95693..add8e98327 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 7defe5dff3..c976d6b676 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 3d6e0d717e..1ff2f8baf6 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