freebsd-dev/lib/msun
David Schultz 8862f666ad Fix some problems with asinf(), acosf(), atanf(), and atan2f():
- Adjust several constants for float precision. Some thresholds
  that were appropriate for double precision were never changed
  when these routines were converted to float precision. This
  has an impact on performance but not accuracy. (Submitted by bde.)

- Reduce the degrees of the polynomials used. A smaller degree
  suffices for float precision.

- In asinf(), use double arithmetic in part of the calculation to
  avoid a corner case and some complicated arithmetic involving a
  division and some buggy constants. This improves performance and
  accuracy.

Max error (ulps):
         asinf  acosf  atanf
before   0.925  0.782  0.852
after    0.743  0.804  0.852

As bde points out, it's cheaper for asin*() and acos*() to use
polynomials instead of rational functions, but that's a task for
another day.
2008-08-01 01:24:25 +00:00
..
amd64 Add assembly versions of remquol() and remainderl(). 2008-03-30 21:21:53 +00:00
arm Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
bsdsrc Eliminate some warnings. 2008-02-22 02:26:51 +00:00
i387 Add assembly versions of remquol() and remainderl(). 2008-03-30 21:21:53 +00:00
ia64 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
ld80 Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00
ld128 Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00
man Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00
mips Symbol.map is handled by cpp, so use C-style comments 2008-05-03 21:16:08 +00:00
powerpc Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPC 2008-02-24 19:22:53 +00:00
sparc64 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
src Fix some problems with asinf(), acosf(), atanf(), and atan2f(): 2008-08-01 01:24:25 +00:00
Makefile Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00
Symbol.map Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00