glibc/sysdeps/unix/sysv/linux/powerpc
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
powerpc32 Implement C23 compoundn 2025-05-09 15:17:27 +00:00
powerpc64 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 powerpc: Move AT_HWCAP descriptions to ld diagnostics 2025-03-05 11:22:09 -03:00
Versions
cancellation-pc-check.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
configure sysdeps: powerpc: restore -mlong-double-128 check 2025-04-02 14:57:40 +01:00
configure.ac sysdeps: powerpc: restore -mlong-double-128 check 2025-04-02 14:57:40 +01:00
cpu-features.c powerpc: Remove unused dl-procinfo.h 2025-03-05 11:22:09 -03:00
cpu-features.h powerpc: Move AT_HWCAP descriptions to ld diagnostics 2025-03-05 11:22:09 -03:00
dl-auxv.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
dl-cache.h
dl-hwcap-info.c powerpc: Move AT_HWCAP descriptions to ld diagnostics 2025-03-05 11:22:09 -03:00
dl-hwcap-info.h powerpc: Move AT_HWCAP descriptions to ld diagnostics 2025-03-05 11:22:09 -03:00
dl-support.c
elision-conf.c Remove dl-procinfo.h 2025-03-05 11:22:09 -03:00
elision-conf.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
elision-lock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
elision-timed.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
elision-trylock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
elision-unlock.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
get_timebase_freq.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
gettimeofday.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
htm.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
internal-ioctl.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ipc_priv.h 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_sigaction.h
kernel_termios.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
ldd-rewrite.sed
libc-start.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-start.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libc-vdso.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libpthread-compat.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
nldbl-abi.h
pointer_guard.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
pthread_attr_setstack.c
pthread_attr_setstacksize.c
readelflib.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
rt-sysdep.c
rtld_static_init.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
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_shmid64_ds.h
syscall.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
syscall_cancel.S Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sysconf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sysdep.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
sysdep.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-gettimebasefreq-static.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-gettimebasefreq.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
test-powerpc-linux-sysconf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
time.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
tst-hwcap-tunables.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
xstatver.h