glibc/sysdeps
Patrick McGehearty a14d8acd32 Improves __ieee754_exp(x) performance by 18-37% when |x| < 1.0397
Adds a fast path to e_exp.c when |x| < 1.03972053527832.
When values are tested in isolation, reduction in execution
time is: aarch 30%, sparc 18%, x86 37%.
When comparing benchtests/bench.out which includes values
outside that range, the gains are:
aarch 8%, sparc 5%, x86 9%.

make check is clean (no increase in ulp for any math test).
Testing 20M values for each rounding mode in that range shows
approximately one in 200 values is off by 1 ulp. No value tested
for exp(x) changed by 2 or more ulp.

No observed change in performance or accuracy for x outside
fast path range.

These changes will be active for all platforms that don't provide
their own exp() routines. They will also be active for ieee754
versions of ccos, ccosh, cosh, csin, csinh, sinh, exp10, gamma, and
erf.
2018-04-15 18:46:37 -04:00
..
aarch64 elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
alpha elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
arm Update ARM libm-test-ulps. 2018-04-05 17:10:03 -03:00
generic elf: Correct absolute (SHN_ABS) symbol run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
gnu Fix errno values 2018-03-20 03:10:57 +01:00
hppa elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
htl hurd: Avoid local PLTs in libpthread. 2018-04-02 18:08:37 +00:00
hurd hurd: Avoid more libc.so PLTs 2018-04-02 23:40:26 +00:00
i386 Update i386 libm-test-ulps. 2018-04-06 17:24:15 -03:00
ia64 elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
ieee754 Improves __ieee754_exp(x) performance by 18-37% when |x| < 1.0397 2018-04-15 18:46:37 -04:00
init_array sysdeps/init_array: Add PREINIT_FUNCTION to crti.S 2018-01-29 10:22:26 -08:00
m68k elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
mach hurd: Avoid PLT for dirfd 2018-04-05 01:52:29 +02:00
microblaze elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
mips elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
nios2 elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
nptl Filter out NPTL internal signals (BZ #22391) 2018-04-03 13:30:49 -03:00
posix Consolidate Linux readdir{64}{_r} implementation 2018-04-06 17:49:02 -03:00
powerpc powerpc: Update sin, cos and sincos ULPs 2018-04-04 19:17:13 -03:00
pthread hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
riscv elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
s390 S390: Regenerate ULPs. 2018-04-05 16:24:06 +02:00
sh elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
sparc Update SPARC libm-test-ulps. 2018-04-05 17:10:03 -03:00
tile elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00
unix Update kernel version in syscall-names.list to 4.16. 2018-04-12 15:25:50 -04:00
wordsize-32 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
wordsize-64 Use libc_hidden_* for strtoumax (bug 15105). 2018-02-28 14:16:21 +00:00
x86 Remove sysdeps/x86/fpu/bits/mathinline.h __finite inline. 2018-03-16 18:36:53 +00:00
x86_64 elf: Unify symbol address run-time calculation [BZ #19818] 2018-04-04 23:09:37 +01:00