glibc/sysdeps/ieee754
Wilco Dijkstra b7c83ca30e Remove slow paths from log
Remove the slow paths from log.  Like several other double precision math
functions, log is exactly rounded.  This is not required from math functions
and causes major overheads as it requires multiple fallbacks using higher
precision arithmetic if a result is close to 0.5ULP.  Ridiculous slowdowns
of up to 100000x have been reported when the highest precision path triggers.

Interestingly removing the slow paths makes hardly any difference in practice:
the worst case error is still ~0.502ULP, and exp(log(x)) shows identical results
before/after on many millions of random cases.  All GLIBC math tests pass on
AArch64 and x64 with no change in ULP error.  A simple test over a few hundred
million values shows log is now 18% faster on average.

	* manual/probes.texi (slowlog): Delete documentation of removed probe.
	(slowlog_inexact): Likewise
	* sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Remove slow paths.
	* sysdeps/ieee754/dbl-64/ulog.h: Remove unused declarations.
2018-02-07 12:24:43 +00:00
..
dbl-64 Remove slow paths from log 2018-02-07 12:24:43 +00:00
float128 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
flt-32 Fix -Os log1p, log1pf build (bug 21314). 2018-02-01 20:40:48 +00:00
ldbl-64-128 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ldbl-96 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ldbl-128 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ldbl-128ibm Fix ldbl-128ibm log1pl (-qNaN) spurious "invalid" exception (bug 22693). 2018-01-10 17:59:01 +00:00
ldbl-opt Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
soft-fp Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_standard.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
k_standardl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00