mirror of git://sourceware.org/git/glibc.git
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. |
||
---|---|---|
.. | ||
bits | ||
powerpc32 | ||
powerpc64 | ||
sys | ||
Implies | ||
Makefile | ||
Versions | ||
cancellation-pc-check.h | ||
configure | ||
configure.ac | ||
cpu-features.c | ||
cpu-features.h | ||
dl-auxv.h | ||
dl-cache.h | ||
dl-hwcap-info.c | ||
dl-hwcap-info.h | ||
dl-support.c | ||
elision-conf.c | ||
elision-conf.h | ||
elision-lock.c | ||
elision-timed.c | ||
elision-trylock.c | ||
elision-unlock.c | ||
get_timebase_freq.c | ||
gettimeofday.c | ||
htm.h | ||
internal-ioctl.h | ||
ipc_priv.h | ||
kernel-features.h | ||
kernel_sigaction.h | ||
kernel_termios.h | ||
ldd-rewrite.sed | ||
libc-start.c | ||
libc-start.h | ||
libc-vdso.h | ||
libpthread-compat.c | ||
nldbl-abi.h | ||
pointer_guard.h | ||
pthread_attr_setstack.c | ||
pthread_attr_setstacksize.c | ||
readelflib.c | ||
rt-sysdep.c | ||
rtld_static_init.h | ||
sigcontextinfo.h | ||
socket-constants-time64.h | ||
struct_kernel_shmid64_ds.h | ||
syscall.S | ||
syscall_cancel.S | ||
sysconf.c | ||
sysdep.c | ||
sysdep.h | ||
test-gettimebasefreq-static.c | ||
test-gettimebasefreq.c | ||
test-powerpc-linux-sysconf.c | ||
time.c | ||
tst-hwcap-tunables.c | ||
xstatver.h |