glibc/sysdeps/unix/sysv/linux/mips
Joseph Myers ae31254432 Implement C23 compoundn
C23 adds various <math.h> function families originally defined in TS
18661-4.  Add the compoundn functions, which compute (1+X) to the
power Y for integer Y (and X at least -1).  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.

Note that these functions are "compoundn" with a trailing "n", *not*
"compound" (CORE-MATH has the wrong name, for example).

As with pown, 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 (I
haven't tested or benchmarked the CORE-MATH implementation for
binary32); this is one of the more complicated and less efficient
functions to implement in a type-generic way.

As with exp2m1 and exp10m1, this showed up places where the
powerpc64le IFUNC setup is not as self-contained as one might hope (in
this case, without the changes specific to powerpc64le, there were
undefined references to __GI___expf128).

Tested for x86_64 and x86, and with build-many-glibcs.py.
2025-05-09 15:17:27 +00:00
..
bits linux/termio: remove <termio.h> and struct termio 2025-04-25 07:30:59 +02:00
mips32 Implement C23 compoundn 2025-05-09 15:17:27 +00:00
mips64 Implement C23 compoundn 2025-05-09 15:17:27 +00:00
sys Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
Implies
Makefile
Versions
____longjmp_chk.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
_test_and_set.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clone.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
clone3.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
configure
configure.ac
dl-cache.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
errlist-compat-data.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
fxstat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getcontext.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
getrlimit64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
kernel-features.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
kernel_rt_sigframe.h
kernel_sigaction.h
kernel_stat.h
kernel_termios.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ldsodefs.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-abis
lxstat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
makecontext.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
mmap_info.h
readelflib.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
setcontext.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
setrlimit64.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
shlib-versions
sigcontextinfo.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
socket-constants-time64.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
struct_kernel_msqid64_ds.h
struct_kernel_semid64_ds.h
struct_kernel_shmid64_ds.h
swapcontext.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
syscalls.list
sysdep.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ucontext_i.sym
ustat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
vfork.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
xstat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
xstatconv.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
xstatver.h