aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPatrick McGehearty <patrick.mcgehearty@oracle.com>2018-04-15 18:46:37 -0400
committerPatrick McGehearty <patrick.mcgehearty@oracle.com>2018-04-15 18:46:37 -0400
commita14d8acd3261a7290e572a3cf435509ecd6e96d4 (patch)
tree31005eefa4147504e9ac0cc14aea39e4f601c1d2 /ChangeLog
parenta700e7cb3799316e1b23879b4cf0891f5703acb1 (diff)
downloadglibc-a14d8acd3261a7290e572a3cf435509ecd6e96d4.zip
glibc-a14d8acd3261a7290e572a3cf435509ecd6e96d4.tar.gz
glibc-a14d8acd3261a7290e572a3cf435509ecd6e96d4.tar.bz2
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog5
1 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 622536e..9d27c1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-15 Patrick McGehearty <patrick.mcgehearty@oracle.com>
+
+ * sysdeps/ieee754/dbl-64/e_exp.c: faster __ieee754_exp()
+ * sysdeps/ieee754/dbl-64/eexp.tbl: New file for e_exp.c
+
2018-04-12 DJ Delorie <dj@redhat.com>
* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel