Re: What to do about tgammal?

From: Steve Kargl <sgk_at_troutmask.apl.washington.edu>
Date: Mon, 13 Dec 2021 02:22:23 UTC
On Sat, Dec 04, 2021 at 11:48:13PM +0000, Mark Murray wrote:
> 
> 
> > On 4 Dec 2021, at 18:53, Steve Kargl <sgk@troutmask.apl.washington.edu> wrote:
> > 
> > 
> > So, is anyone interested in seeing a massive patch?
> 
> Me, please!
> 

So, I have the ld80 case working.  I'll open a PR if 
on does not exist.  The pr will contain

1) Diff for nonfunctional changes to code for tgamma(x).
    This is a re-organization of the code so I could reverse
    it.  Some cleanup of comments and documentations.  A
    move towards style(9)

2) Advice on what to do about tgammal(x) on ld128 hardware.
   Essentially, need to do the git equivalent of 'svn mv
   imprecise.c ld128/b_tgammal.c.

3) Diff with the new code for ld80 tgamma.


Interval tested for tgammal: [6,1755.1]
5000000 calls, 2.056068 secs, 0.41121 usecs/call
       ulp <= 0.5: 90.233%   4511666 |  90.233%   4511666
0.5 <  ulp <  0.6:  7.061%    353033 |  97.294%   4864699
0.6 <  ulp <  0.7:  2.393%    119644 |  99.687%   4984343
0.7 <  ulp <  0.8:  0.300%     14981 |  99.986%   4999324
0.8 <  ulp <  0.9:  0.014%       676 | 100.000%   5000000
Max ulp: 0.873414 at 1.480588145237629047468e+03

Interval tested for tgammal: [1.0662,6]
5000000 calls, 0.748966 secs, 0.14979 usecs/call
       ulp <= 0.5: 96.355%   4817737 |  96.355%   4817737
0.5 <  ulp <  0.6:  3.291%    164534 |  99.645%   4982271
0.6 <  ulp <  0.7:  0.328%     16403 |  99.973%   4998674
0.7 <  ulp <  0.8:  0.026%      1297 |  99.999%   4999971
0.8 <  ulp <  0.9:  0.001%        29 | 100.000%   5000000
Max ulp: 0.861508 at 1.999467927053585410537e+00

Interval tested for tgammal: [1.01e-17,1.0661]
5000000 calls, 0.904246 secs, 0.18085 usecs/call
       ulp <= 0.5: 96.201%   4810043 |  96.201%   4810043
0.5 <  ulp <  0.6:  3.297%    164875 |  99.498%   4974918
0.6 <  ulp <  0.7:  0.412%     20581 |  99.910%   4995499
0.7 <  ulp <  0.8:  0.082%      4108 |  99.992%   4999607
0.8 <  ulp <  0.9:  0.008%       389 | 100.000%   4999996
0.9 <  ulp <  1.0:  0.000%         4 | 100.000%   5000000
Max ulp: 0.938041 at 1.023286481537296307856e+00

Interval tested for tgammal: [-1.9999,-1.0001]
5000000 calls, 1.740820 secs, 0.34816 usecs/call
       ulp <= 0.5: 56.596%   2829776 |  56.596%   2829776
0.5 <  ulp <  0.6:  8.616%    430793 |  65.211%   3260569
0.6 <  ulp <  0.7:  7.452%    372621 |  72.664%   3633190
0.7 <  ulp <  0.8:  6.250%    312511 |  78.914%   3945701
0.8 <  ulp <  0.9:  5.147%    257372 |  84.061%   4203073
0.9 <  ulp <  1.0:  4.100%    205010 |  88.162%   4408083
1.0 <  ulp <  1.5:  9.846%    492324 |  98.008%   4900407
1.5 <  ulp <  2.0:  1.790%     89514 |  99.798%   4989921
2.0 <  ulp <  3.0:  0.201%     10074 | 100.000%   4999995
3.0 <  ulp <  0.0:  0.000%         5 | 100.000%   5000000

-- 
Steve