glibc/sysdeps/unix/sysv/linux/x86_64
Joseph Myers 06caf53adf Implement C23 rootn.
C23 adds various <math.h> function families originally defined in TS
18661-4.  Add the rootn functions, which compute the Yth root of X for
integer Y (with a domain error if Y is 0, even if X is a NaN).  The
integer exponent has type long long int in C23; it was intmax_t in TS
18661-4, and as with other interfaces changed after their initial
appearance in the TS, I don't think we need to support the original
version of the interface.

As with pown and compoundn, I strongly encourage searching for worst
cases for ulps error for these implementations (necessarily
non-exhaustively, given the size of the input space).  I also expect a
custom implementation for a given format could be much faster as well
as more accurate, although the implementation is simpler than those
for pown and compoundn.

This completes adding to glibc those TS 18661-4 functions (ignoring
DFP) that are included in C23.  See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118592 regarding the C23
mathematical functions (not just the TS 18661-4 ones) missing built-in
functions in GCC, where such functions might usefully be added.

Tested for x86_64 and x86, and with build-many-glibcs.py.
2025-05-14 10:51:46 +00:00
..
64 Implement C23 rootn. 2025-05-14 10:51:46 +00:00
include/asm
x32 Implement C23 rootn. 2025-05-14 10:51:46 +00:00
Implies
Makefile
Versions
____longjmp_chk.S
__start_context.S
allocate-shadow-stack.c
allocate-shadow-stack.h
clone.S
clone3.S
configure
configure.ac
dl-cet.h
dl-plt-rewrite.h
dl-procinfo.c
get-cpuid-feature-leaf.c
getcontext.S
kernel-features.h
ldd-rewrite.sed
libc_sigaction.c
libmvec.abilist
makecontext.c
pointer_guard.h
setcontext.S
sigaltstack-offsets.sym
sigcontextinfo.h
single-thread.h
swapcontext.S
syscall.S
syscall_cancel.S
syscalls.list
sysdep.S
sysdep.h
tst-cet-property-1.c
tst-cet-property-2.c
tst-cet-property-dep-2.S
tst-cet-setcontext-1.c
tst-cet-vfork-1.c
tst-glibc-hwcaps-2.c
tst-gnu2-tls2-amx-mod0.c
tst-gnu2-tls2-amx-mod1.c
tst-gnu2-tls2-amx-mod2.c
tst-gnu2-tls2-amx.c
tst-gnu2-tls2-amx.h
ucontext_i.sym
vfork.S
x86-64-isa-level-VALUE.c