freebsd-dev/lib
David Schultz c4da2324a3 Fix a bug where rintf() rounded the wrong way in round-to-nearest mode
on all inputs of the form x.75, where x is an even integer and
log2(x) = 21.  A similar problem occurred when rounding upward.
The bug involves the following snippet copied from rint():

	i>>=1;
	if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0);

The constant 0x100000 should be 0x200000.  Apparently this case was
never tested.

It turns out that the bit manipulation is completely superfluous
anyway, so remove it.  (It tries to simulate 90% of the rounding
process that the FPU does anyway.)  Also, the special case of +-0 is
handled twice (in different ways), so remove the second instance.

Throw in some related simplifications from bde:

- Work around a bug where gcc fails to clip to float precision by
  declaring two float variables as volatile.  Previously, we
  tricked gcc into generating correct code by declaring some
  float constants as doubles.

- Remove additional superfluous bit manipulation.

- Minor reorganization.

- Include <sys/types.h> explicitly.

Note that some of the equivalent lines in rint() also appear to be
unnecessary, but I'll defer to the numerical analysts who wrote it,
since I can't test all 2^64 cases.

Discussed with:	bde
2004-06-09 21:24:52 +00:00
..
compat Update with the 4.9 pam modules, and add pam_opieaccess.so to the mix. 2003-12-07 03:02:27 +00:00
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 Correct some spelling errors. 2004-06-08 00:23:27 +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 Remove a couple of casts added for an ancient Sun compiler. 2004-06-08 12:20:40 +00:00
libc_r style cleanup: Remove duplicate $FreeBSD$ tags. 2004-02-10 20:45:28 +00:00
libcalendar mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libcam Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libcom_err
libcompat mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libcrypt
libdevinfo mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
libdevstat Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
libdisk Handle read_block() failures by ignoring the disk rather than 2004-06-04 11:49:11 +00:00
libedit mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
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 Avoid clobbering the red zone when running on the new context's stack in 2004-06-07 21:25:16 +00:00
libkvm Avoid assignments to cast expressions. 2004-06-08 13:08:19 +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 Avoid clobbering the red zone when running on the new context's stack in 2004-06-07 21:25:16 +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 clnt_call takes args of type xdrproc_t. 2003-10-26 03:43:35 +00:00
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 Remove unneccessary include of sys/types.h in the SYNOPSIS 2003-10-09 09:45:20 +00:00
libugidfw Fixed misspellings of 0 as NULL. 2004-03-11 09:56:04 +00:00
libusbhid Add __BEGIN_DECLS / __END_DECLS so this can be used in C++ code. 2004-06-03 15:04:24 +00:00
libutil Humanize_number(3) is a part of libutil. 2004-05-25 20:11:50 +00:00
libvgl Signal handlers are supposed to take an int parameter. 2004-06-08 12:24:47 +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 Fix a bug where rintf() rounded the wrong way in round-to-nearest mode 2004-06-09 21:24:52 +00:00
ncurses
Makefile Style fixes: 2004-05-14 19:52:35 +00:00
Makefile.inc