[Rd] make check-all fails (PR#7784)

Peter Dalgaard p.dalgaard at biostat.ku.dk
Sun Apr 10 11:01:04 CEST 2005


"M. Edward (Ed) Borasky" <znmeb at cesmail.net> writes:

> p.dalgaard at biostat.ku.dk wrote:
> 
> >This looks more serious. 100 times machine precision is quite a large
> >margin in these matters. Could you perhaps stick in a printout of the
> >two terms and their difference?
> >
> >I have an ATLAS build on AMD64 and it passes all the checks, but it is
> >using ATLAS 3.7.8, so you might want to try an upgrade.
> >
> >
> Attached ... you actually weren't very far off:
...
> > print (f2[common])
>          1          2          3          4          7          8          9 
>  32.971099  37.113091  27.472204  16.891921  32.320560  -6.091053 -26.953745 
>         12         13         14         15         16         17         18 
...
>  41.798651  40.734935  40.285066  24.876177   8.442082  46.373463  72.652242 
>        118        120        121        122        123        124        125 
>  65.983901  81.140660 101.389698  92.784665  86.803528  66.813059  76.464152 
>        126        127        128        129        130        131        132 
>  85.562396  80.164720  55.046451  22.602751  38.602215  35.466808  28.565003 
>        133        134        135        136        137        138        139 
>  30.487396  27.515347  17.475536  49.119123  11.994736  14.701687  49.795201 
>        140        141        142        143        144        145        146 
>   5.664599  24.711067  20.426534  53.013693   5.758723  19.324367  41.190110 
>        147        148        149        151        152        153 
>  14.189862 -19.275130  35.155615  20.525269  40.584670  18.702940 
...

Aha! 100 times machine precision in not all that much when the numbers
themselves are in double digits. In fact, one is over 100. The case
that triggers the failure is #149

>           147           148           149           151           152 
> -1.598721e-14 -1.065814e-14 -2.842171e-14 -1.065814e-14 -2.131628e-14 

which is 2 ULP off by my reckoning (scaling 35.15 to be between 0.5
and 1 makes the error 2.842e-14/64 =  4.44e-16 and .Machine at double.eps
is 2.22e-16).

So again, we might be too strict. I just wonder why we haven't heard
of this on any other platforms.

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)             FAX: (+45) 35327907



More information about the R-devel mailing list