freebsd-dev/lib
Bruce Evans 4f8f819975 Fixed lots of 1 ULP errors caused by a broken approximation for pi/2.
We approximate pi with more than float precision using pi_hi+pi_lo in
the usual way (pi_hi is actually spelled pi in the source code), and
expect (float)0.5*pi_lo to give the low part of the corresponding
approximation for pi/2.  However, the high part for pi/2 (pi_o_2) is
rounded to nearest, which happens to round up, while the high part for
pi was rounded down.  Thus pi_o_2+(float)0.5*pi (in infinite precision)
was a very bad approximation for pi/2 -- the low term has the wrong
sign and increases the error drom less than half an ULP to a full ULP.

This fix rounds up instead of down for pi_hi.  Consistently rounding
down instead of up should work, and is the method used in e_acosf.c
and e_asinf.c.  The reason for the difference is that we sometimes
want to return precisely pi/2 in e_atan2f.c, so it is convenient to
have a correctly rounded (to nearest) value for pi/2 in a variable.
a_acosf.c and e_asinf.c also differ in directly approximating pi/2
instead pi; they multiply by 2.0 instead of dividing by 0.5 to convert
the approximation.

These complications are not directly visible in the double precision
versions because rounding to nearest happens to round down.
2004-06-02 17:09:05 +00:00
..
compat
csu C runtime support for FreeBSD/arm. 2004-05-14 12:19:04 +00:00
libalias Unbreak natd. 2004-04-02 17:57:57 +00:00
libarchive Add MLINKS for new API functions. 2004-06-02 08:16:21 +00:00
libatm Use WARNS?=3 for these in the arm case for now, due to toolchain issues. 2004-05-14 13:31:21 +00:00
libbind
libbluetooth Make NULL a (void*)0 whereever possible, and fix the warnings(-Werror) 2004-03-05 08:10:19 +00:00
libbsnmp Use a MANFILTER to patch the man pages to point to the right path. 2004-04-14 16:31:54 +00:00
libbz2
libc use source address as a hint to determine destination address 2004-06-02 06:49:36 +00:00
libc_r style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:45:28 +00:00
libcalendar
libcam Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libcom_err
libcompat
libcrypt
libdevinfo
libdevstat Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libdisk Remove spurious semicolons. Outside of functions they are actually errors but 2004-05-16 22:08:17 +00:00
libedit
libexpat
libfetch Slight tweak to previous commit: don't forget to call _http_seterr() if 2004-02-11 09:35:27 +00:00
libform
libftpio
libgeom Make libgeom usable by C++ programs: 2004-03-09 21:14:18 +00:00
libio Remove now redundant and now conflicting declaration of sysarch(2). 2004-01-10 18:37:11 +00:00
libipsec Initial import of RFC 2385 (TCP-MD5) digest support. 2004-02-11 04:34:34 +00:00
libipx Don't declare spectHex() inside a function, use a real prototype. 2004-05-24 16:48:53 +00:00
libisc
libkiconv Fixed misspellings of '\0' as NULL. 2004-03-14 05:14:00 +00:00
libkse Arm bits for libpthread. It has no chances to work and should be considered 2004-05-14 12:21:29 +00:00
libkvm Implement crashdump decoding for AMD64 as well, now that I have finally 2004-05-19 18:24:13 +00:00
libmd Backed out rev.1.6 and subsequent copying of it (bogus addition of 2004-02-26 07:44:37 +00:00
libmenu
libmilter Honor NOINET6 and disable IPv6 support in libmilter and sendmail if it 2004-06-01 01:29:42 +00:00
libmp
libncp Distinguish cases when ncp module not loaded and when module have old 2004-06-02 03:41:10 +00:00
libncurses
libnetgraph Increment WARNS. 2004-01-28 00:11:42 +00:00
libngatm style.Makefile: 2004-02-23 20:07:47 +00:00
libopie Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libpam Add -DDEBUG to DEBUG_FLAGS if PAM_DEBUG is defined. 2004-03-15 13:23:20 +00:00
libpanel
libpcap Merge of libpcap 0.8.3 from tcpdump.org. 2004-03-31 09:15:09 +00:00
libpthread Arm bits for libpthread. It has no chances to work and should be considered 2004-05-14 12:21:29 +00:00
libpthread_dbg Add missing file. 2004-02-04 06:32:45 +00:00
libradius Put crypto-aware version of the library into the right distribution. 2004-05-12 06:31:36 +00:00
librpcsvc
libsbuf
libsdp Make sure Bluetooth stuff can be compiled on amd64 2004-04-09 23:01:42 +00:00
libsm Honor NOINET6 and disable IPv6 support in libmilter and sendmail if it 2004-06-01 01:29:42 +00:00
libsmb
libsmdb
libsmutil
libstand Define iaddr_t and saddr_t for arm. 2004-05-14 13:32:13 +00:00
libtacplus Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libtelnet
libthr Make libthr async-signal-safe without costly signal masking. The guidlines I 2004-05-20 12:06:16 +00:00
libufs
libugidfw Fixed misspellings of 0 as NULL. 2004-03-11 09:56:04 +00:00
libusbhid Do not cast dval. 2004-02-11 21:09:13 +00:00
libutil Humanize_number(3) is a part of libutil. 2004-05-25 20:11:50 +00:00
libvgl Fix typo. 2004-05-12 20:40:09 +00:00
libwrap
libxpg4
liby Include <stdlib.h> for exit() and add a prototype for yyparse(). 2004-05-24 09:50:57 +00:00
libypclnt Nothing in libypclnt depends on librpcsvc. 2004-02-04 09:53:29 +00:00
libz
msun Fixed lots of 1 ULP errors caused by a broken approximation for pi/2. 2004-06-02 17:09:05 +00:00
ncurses
Makefile Style fixes: 2004-05-14 19:52:35 +00:00
Makefile.inc