svn commit: r251343 - in head/lib/msun: . ld128 ld80 man src

Steve Kargl sgk at troutmask.apl.washington.edu
Mon Jun 3 19:57:42 UTC 2013


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


More information about the svn-src-all mailing list