1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-21 15:45:02 +00:00
freebsd/lib
Bruce Evans 60a50c2585 Optimize the 9pi/2 < |x| <= 2**19pi/2 case some more by avoiding an
fabs(), a conditional branch, and sign adjustments of 3 variables for
x < 0 when the branch is taken.  In double precision, even when the
branch is perfectly predicted, this saves about 10 cycles or 10% on
amd64 (A64) and i386 (A64) for the negative half of the range, but
makes little difference for the positive half of the range.  In float
precision, it also saves about 4 cycles for the positive half of the
range on i386, and many more cycles in both halves on amd64 (28 in the
negative half and 11 in the positive half for tanf), but the amd64
times for float precision are anomalously slow so the larger
improvement is only a side effect.

Previous commits arranged for the x < 0 case to be handled simply:
- one part of the rounding method uses the magic number 0x1.8p52
  instead of the usual 0x1.0p52.  The latter is required for large |x|,
  but it doesn't work for negative x and we don't need it for large |x|.
- another part of the rounding method no longer needs to add `half'.
  It would have needed to add -half for negative x.
- removing the "quick check no cancellation" in the double precision
  case removed the need to take the absolute value of the quadrant
  number.

Add my noncopyright in e_rem_pio2.c
2008-02-23 12:53:21 +00:00
..
bind
csu
libalias
libarchive Sanity-check the block size. 2008-02-21 03:21:50 +00:00
libatm
libautofs
libbegemot
libbluetooth
libbsm
libbsnmp
libbz2
libc Note, as required by our agreement with IEEE/The Open Group, that the message 2008-02-21 19:16:57 +00:00
libc_r
libcalendar
libcam
libcom_err
libcompat
libcrypt
libdevinfo
libdevstat The devstat(3) manpage claims that only <devstat.h> is needed as a 2008-01-31 16:55:12 +00:00
libdisk - Make Disk_Names() behave as documented in libdisk(3): return an array 2008-02-15 21:19:15 +00:00
libedit
libelf Document the return type for gelf_fsize(3). 2008-02-04 18:50:28 +00:00
libexpat
libfetch Use memcpy(3) instead of the BSD-specific bcopy(3). 2008-02-08 09:48:48 +00:00
libftpio
libgeom
libgpib
libgssapi
libipsec
libipx
libkiconv
libkse Add missing #include 2008-02-06 23:25:29 +00:00
libkvm Plug memory leaks that is observed when argbuf or argspc is used in the 2008-01-12 00:54:47 +00:00
libmagic Update for the 'file' 4.23 import. 2008-01-13 20:37:19 +00:00
libmd
libmemstat
libmilter Switch libmilter from select(2) to poll(2) so milters are not limited 2008-02-17 05:14:47 +00:00
libmp
libncp
libnetgraph
libngatm
libopie
libpam Adjust for OpenPAM Hydrangea. 2007-12-21 12:00:16 +00:00
libpcap
libpmc Correct a typo. 2008-02-03 06:04:38 +00:00
libradius
librpcsvc set WARNS to 1: with WARNS=2 an aliasing error in a file generated by 2008-02-05 20:03:45 +00:00
librt
libsbuf
libsdp
libsm
libsmb
libsmdb
libsmutil
libstand Fix logical bug in the bzip2 reading code, which results in bogus EIO 2007-12-18 01:50:49 +00:00
libtacplus
libtelnet
libthr _pthread_mutex_isowned_np(): use a more reliable method; the current code 2008-02-14 12:37:58 +00:00
libthread_db
libufs
libugidfw
libusbhid
libutil Put back the openpty(3) and ptsname(3) fixes but don't disable ptsname(3) 2008-01-15 15:36:23 +00:00
libvgl
libwrap
liby
libypclnt
libz
msun Optimize the 9pi/2 < |x| <= 2**19pi/2 case some more by avoiding an 2008-02-23 12:53:21 +00:00
ncurses - Remove duplicate tputs.3 from MLINK. As we use termcap in the bsae, remove 2008-02-13 14:34:39 +00:00
Makefile
Makefile.inc