[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