[R-SIG-Mac] NaN and linear algebra

Kjell Konis konis at stats.ox.ac.uk
Sat Mar 19 18:45:35 CET 2005


Hi,

This problem appears to be a bit more than just an issue with vecLib.  
On Linux using the solve function on a square matrix of NaNs produces 
an error on the first call then returns a matrix of NaNs on subsequent 
calls.  It's hard to believe that's the intended behavior.

Kjell

On the Mac:

 > d <- matrix(NaN, 3, 3)
 > d
      [,1] [,2] [,3]
[1,]  NaN  NaN  NaN
[2,]  NaN  NaN  NaN
[3,]  NaN  NaN  NaN
 > solve(d)
Error in solve.default(d) : Lapack routine dgesv: system is exactly 
singular

On Linux:

 > d <- matrix(NaN, 3, 3)
 > solve(d)
Error in solve.default(d) : system is computationally singular: 
reciprocal condition number = 0
 > solve(d)
      [,1] [,2] [,3]
[1,]  NaN  NaN  NaN
[2,]  NaN  NaN  NaN
[3,]  NaN  NaN  NaN



On Mar 19, 2005, at 4:44 PM, David Firth wrote:

> Dear Don, Bill and Stefano
>
> Many thanks for your helpful replies on this.  I do think this is 
> pretty serious: the example I gave is an extreme one, but in real 
> problems (e.g., calls to optim()) this sort of thing can and does 
> result in different behaviour on the Mac than on other systems.  And 
> that has to be a Bad Thing.
>
> I'm unsure whether it is better to press Apple to improve vecLib, or 
> to test R with an alternative BLAS (and if successful, recommend using 
> that BLAS in place of vecLib).  Or both.  Unfortunately I don't know 
> enough about these routines and the relevant standards to pursue 
> either route myself.
>
> Best regards,
> David
>
>>
>>
>> At 11:57 AM +0000 3/16/05, David Firth wrote:
>>> I don't know whether this is a bug, or a problem with the way I 
>>> built R 2.0.1 (under Mac OS 10.3 on a G5), or something else.  Can 
>>> anyone else confirm (or otherwise) that this happens in their R 
>>> 2.0.1 on Mac OS X?
>>>
>>>  >  d<-matrix(NaN,3,3)
>>>>   d
>>>     [,1] [,2] [,3]
>>> [1,]  NaN  NaN  NaN
>>> [2,]  NaN  NaN  NaN
>>> [3,]  NaN  NaN  NaN
>>>>   solve(d)
>>> Error in solve.default(d) : Lapack routine dgesv: system is exactly 
>>> singular
>>>>   chol(d)
>>> Error in chol(d) : the leading minor of order 1 is not positive 
>>> definite
>>>>   det(d)
>>> [1] 0
>>>
>>> Doing the same thing on a Windows setup gave a different (and more 
>>> useful, I think) result
>>>
>>>>  d<-matrix(NaN,3,3)
>>>>  d
>>>     [,1] [,2] [,3]
>>> [1,]  NaN  NaN  NaN
>>> [2,]  NaN  NaN  NaN
>>> [3,]  NaN  NaN  NaN
>>>>  solve(d)
>>>     [,1] [,2] [,3]
>>> [1,]  NaN  NaN  NaN
>>> [2,]  NaN  NaN  NaN
>>> [3,]  NaN  NaN  NaN
>>>>  chol(d)
>>>     [,1] [,2] [,3]
>>> [1,]  NaN  NaN  NaN
>>> [2,]    0  NaN  NaN
>>> [3,]    0    0  NaN
>>>>  det(d)
>>> [1] NaN
>>>
>>> Any thoughts?
>>> David
>>>
>>> Professor David Firth
>>> Dept of Statistics
>>> University of Warwick
>>> Coventry CV4 7AL
>>> United Kingdom
>>>
>>> Voice: +44 (0)247 657 2581
>>> Fax:   +44 (0)247 652 4532
>>> Web:   http://www.warwick.ac.uk/go/dfirth
>>>
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>
>>
>> -- 
>> --------------------------------------
>> Don MacQueen
>> Environmental Protection Department
>> Lawrence Livermore National Laboratory
>> Livermore, CA, USA
>> --------------------------------------
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac



More information about the R-SIG-Mac mailing list