diff options
| author | Joseph Myers <josmyers@redhat.com> | 2024-12-11 21:51:49 +0000 |
|---|---|---|
| committer | Joseph Myers <josmyers@redhat.com> | 2024-12-11 21:51:49 +0000 |
| commit | ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e (patch) | |
| tree | fa436fea1f0eebeb843ae0c16df84f120f859eb3 /sysdeps | |
| parent | aec85b2557cdb2cc1fc726a50c33848826f00f4d (diff) | |
| download | glibc-ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e.tar.xz glibc-ffe79c446ced76d7c1a77804ff2cc32eccbc7c7e.zip | |
Implement C23 atanpi
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the atanpi functions (atan(x)/pi).
Tested for x86_64 and x86, and with build-many-glibcs.py.
Diffstat (limited to 'sysdeps')
38 files changed, 285 insertions, 0 deletions
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 |
