Date: Mon, 3 Jun 2013 12:57:41 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Steve Kargl <kargl@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r251343 - in head/lib/msun: . ld128 ld80 man src Message-ID: <20130603195741.GC89580@troutmask.apl.washington.edu> In-Reply-To: <201306031951.r53JpWjS051618@svn.freebsd.org> References: <201306031951.r53JpWjS051618@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 03, 2013 at 07:51:32PM +0000, Steve Kargl wrote: > Author: kargl > Date: Mon Jun 3 19:51:32 2013 > New Revision: 251343 > URL: http://svnweb.freebsd.org/changeset/base/251343 > > Log: > ld80 and ld128 implementations of expm1l(). This code started life > as a fairly faithful implementation of the algorithm found in > > PTP Tang, "Table-driven implementation of the Expm1 function > in IEEE floating-point arithmetic," ACM Trans. Math. Soft., 18, > 211-222 (1992). > > Over the last 18-24 months, the code has under gone significant > optimization and testing. > > Reviewed by: bde > Obtained from: bde (most of the optimizations) > For those people that care, here is the data from my last round of testing expl and expm1l. (Best read in 90+column window.) These were obtained using GCC in the base system. expl Timing: 1M 2M 10M 100M i386 [-11355.0:11356.0] 0.088302 0.867567 8.64871 amd64 [-11355.0:11356.0] 0.062994 0.631960 6.30295 sparc64 [-11355.0:11356.0] 39.5309 79.1927 Accuracy: M Max ULP x at Max ULP i386 [-11355.0:11356.0] 1 0.50465 -3.5510383760383760e+03 -0x1.bbe13a6062b8cdd4p+11 i386 [-11355.0:11356.0] 10 0.50556 -9.6479456830945683e+03 -0x1.2d7f90c24c5c686p+13 i386 [-11355.0:11356.0] 100 0.50654 -7.9982712426427124e+03 -0x1.f3e45702867bb01p+12 amd64 [-11355.0:11356.0] 1 0.50465 -3.5510383760383760e+03 -0x1.bbe13a6062b8cdd4p+11 amd64 [-11355.0:11356.0] 10 0.50556 -9.6479456830945683e+03 -0x1.2d7f90c24c5c686p+13 amd64 [-11355.0:11356.0] 100 0.50654 -7.9982712426427124e+03 -0x1.f3e45702867bb01p+12 sparc64 [-11355.0:11356.0] 1 0.50619 1.79779355979355979355979355979355983e+03 sparc64 {-11355.0:11356.0] 2 0.50541 1.11496704618352309176154588077294027e+04 expm1l Timing: 1M 10M 100M i386 [-64.0000:-0.1659] 0.435783 4.342621 43.41397 i386 [ -0.1659: 0.1659] 0.082880 0.829142 8.28948 i386 [ 0.1659:11356.0] 0.110590 1.096098 10.96253 amd64 [-64.0000:-0.1659] 0.066751 0.648734 6.46649 amd64 [ -0.1659: 0.1659] 0.061531 0.614824 6.14377 amd64 [ 0.1659:11356.0] 0.071677 0.716927 7.16819 sparc64 [-113.000:-0.1659] 37.84224 sparc64 [ -0.1659: 0.1659] 66.28533 sparc64 [ 0.1659:11356.0] 41.20714 Accuracy: M Max ULP x at Max ULP i386 [-64.0000:-0.1659] 1 0.50824 -1.7579429539429599e-01 -0x1.6806d6ec55bd2cp-3 i386 [ -0.1659: 0.1659] 1 0.50807 1.5765476175476175e-01 0x1.42e07fee5cecaa04p-3 i386 [ 0.1659:11356.0] 1 0.50533 4.6558240641420642e+03 0x1.22fd2f5de1bf8cb2p+12 i386 [-64.0000:-0.1659] 10 0.51163 -1.8666523480652408e-01 -0x1.7e4a57b65a7cp-3 i386 [ -0.1659: 0.1659] 10 0.51031 -1.6139564864956486e-01 -0x1.4a89cd45552be4a8p-3 i386 [ 0.1659:11356.0] 10 0.50597 7.2029609713952472e+03 0x1.c22f60238aafa618p+12 i386 [-64.0000:-0.1659] 100 0.51520 -1.8119337383093434e-01 -0x1.731582f6d89b72p-3 i386 [ -0.1659: 0.1659] 100 0.51161 1.6120475455904754e-01 0x1.4a25b7e6539760ecp-3 i386 [ 0.1659:11356.0] 100 0.50645 1.5581592136564341e+03 0x1.858a308e79dd8494p+10 amd64 [-64.0000:-0.1659] 1 0.50502 -1.8115636515636515e-01 -0x1.73021bbe7877ccp-3 amd64 [ -0.1659: 0.1659] 1 0.50807 1.5765476175476175e-01 0x1.42e07fee5cecaa04p-3 amd64 [ 0.1659:11356.0] 1 0.50522 5.3732636683514684e+03 0x1.4fd437fc4e28bfb6p+12 amd64 [-64.0000:-0.1659] 10 0.51363 -1.7086629347662934e-01 -0x1.5def25b3c452dap-3 amd64 [ -0.1659: 0.1659] 10 0.51031 -1.6139564864956486e-01 -0x1.4a89cd45552be4a8p-3 amd64 [ 0.1659:11356.0] 10 0.50595 2.2495034322503431e-01 0x1.ccb2c3fb0104dbe4p-3 amd64 [-64.0000:-0.1659] 100 0.51376 -2.7335577165055771e-01 -0x1.17ea934da5e086p-2 amd64 [ -0.1659: 0.1659] 100 0.51161 1.6120475455904754e-01 0x1.4a25b7e6539760ecp-3 amd64 [ 0.1659:11356.0] 100 0.50662 3.9436528827225188e+02 0x1.8a5d83883eef2676p+8 sparc64 [-113.000:-0.1659] 1 0.50339 -4.89331501511501510727132103685011835e+00 sparc64 [ -0.1659:0.1659] 1 0.50837 -1.28120218820218813976976441251060453e-01 sparc64 [ 0.1659:11356.] 1 0.50514 6.45515777662077662077313264157127259e+03 -- steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130603195741.GC89580>