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

M. Edward (Ed) Borasky znmeb at cesmail.net
Sun Apr 10 20:50:14 CEST 2005


Peter Dalgaard wrote:

>"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.
>
>  
>
I think it's an Atlas issue, and possibly an Atlas/Athlon32 issue. The 
built-in BLAS in R-beta don't show this. Is there enough detail on 
what's happening available for me to take this to the Atlas folks? 
They've done a lot of work, including assembler code, on Athlons and 
their 64-bit descendents. My "main system", where I've been doing this 
testing, is a rather old Athlon T-Bird.

Incidentally, even though Atlas does have most parameters set to 
pre-defined values for the Athlon/Linux, it does in fact make *some* 
decisions when it compiles, which may be why I'm showing this and nobody 
else is. I'm using Gentoo Linux, which recompiles nearly everything from 
source, including Atlas and R, when it does an install. Most of the 
other Linux distros have pre-compiled binaries for the various packages. 
Debian, for example, has pre-compiled Atlas libraries for P3, P4 and Athlon.



More information about the R-devel mailing list