# [Rd] Inconsistent behaviour in solve (PR#805)

**Jonathan Rougier
**
J.C.Rougier@durham.ac.uk

*Wed, 10 Jan 2001 09:39:56 +0000 (GMT)*

On Tue, 9 Jan 2001, Prof Brian D Ripley wrote:
>* On Tue, 9 Jan 2001 J.C.Rougier@durham.ac.uk wrote:
*>*
*>* > I find this a bit puzzling ...
*>* >
*>* > > solve(matrix(c(5, 2, 3, 1), 2, 2), c(Inf, 3))
*>* > [1] NaN Inf
*>* > > solve(matrix(c(5, 2, 3, 1), 2, 2)) %*% c(Inf, 3)
*>* > [,1]
*>* > [1,] -Inf
*>* > [2,] Inf
*>* >
*>* > I would expect the answer to be c(-Inf, Inf), so why has the -Inf
*>* > been replaced by NaN in solve?
*>*
*>* Why would you expect it? Did you actually check it?
*>* You have 5x + 3y = Inf, 2x + y = 3
*>* if y - Inf, x = -Inf and 5x + 3y = NaN, 2x + y = NaN.
*>*
*>* Once you have infinities, the standard laws of arithmetic break.
*
What was puzzling was that the answers were not the same. The two results
will have different effects in further calculations as NaN and -Inf are
not treated identically (e.g. max or min). My understanding, supported by
the documentation, is that the two results should be identical, excepting
numerical accuracy.
In S+ the first version generates an error while the second gives c(-Inf,
Inf) as expected. I think this is safer.
Cheers, Jonathan.
Jonathan Rougier Science Laboratories
Department of Mathematical Sciences South Road
University of Durham Durham DH1 3LE
tel: +44 (0)191 374 2361, fax: +44 (0)191 374 7388
http://www.maths.dur.ac.uk/stats/people/jcr/jcr.html
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._