freebsd-skq/lib/msun
Bruce Evans 3b46e988e7 Use a better algorithm for reducing the error in __kernel_cos[f]().
This supersedes the fix for the old algorithm in rev.1.8 of k_cosf.c.

I want this change mainly because it is an optimization.  It helps
make software cos[f](x) and sin[f](x) faster than the i387 hardware
versions for small x.  It is also a simplification, and reduces the
maximum relative error for cosf() and sinf() on machines like amd64
from about 0.87 ulps to about 0.80 ulps.  It was validated for cosf()
and sinf() by exhaustive testing.  Exhaustive testing is not possible
for cos() and sin(), but ucbtest reports a similar reduction for the
worst case found by non-exhaustive testing.  ucbtest's non-exhaustive
testing seems to be good enough to find problems in algorithms but not
maximum relative errors when there are spikes.  E.g., short runs of
it find only 3 ulp error where the i387 hardware cos() has an error
of about 2**40 ulps near pi/2.
2005-10-26 12:36:18 +00:00
..
alpha Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
amd64 Add a missing ldexpf() alias for amd64. 2005-09-12 20:54:00 +00:00
arm Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
bsdsrc Fixed aliasing bugs in TRUNC() by using the fdlibm macros for access 2005-09-19 11:28:19 +00:00
i387 Prevent these functions from using stack outside of their frame. 2005-05-06 15:44:20 +00:00
ia64 Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
man Markup nit. 2005-06-16 21:56:03 +00:00
powerpc Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
sparc64 Replace fegetmask() and fesetmask() with feenableexcept(), 2005-03-16 19:03:46 +00:00
src Use a better algorithm for reducing the error in __kernel_cos[f](). 2005-10-26 12:36:18 +00:00
Makefile Bump the shared library version number of all libraries that have not 2005-07-22 17:19:05 +00:00