From: Duncan Murdoch <murdoch_at_stats.uwo.ca>

Date: Fri, 31 Aug 2007 20:39:02 -0400

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat 01 Sep 2007 - 00:41:33 GMT

Date: Fri, 31 Aug 2007 20:39:02 -0400

The IEEE floating point standard allows for negative zero, but it's hard
to know that you have one in R. One reliable test is to take the
reciprocal. For example,

> y <- 0

* > 1/y
*

[1] Inf

> y <- -y

* > 1/y
*

[1] -Inf

The other day I came across one in complex numbers, and it took me a while to figure out that negative zero was what was happening:

> x <- complex(real = -1)

> x

[1] -1+0i

> 1/x

[1] -1+0i

> x^(1/3)

[1] 0.5+0.8660254i

> (1/x)^(1/3)

[1] 0.5-0.8660254i

(The imaginary part of 1/x is negative zero.)

As a Friday question: are there other ways to create and detect negative zero in R?

And another somewhat more serious question: is the behaviour of negative zero consistent across platforms? (The calculations above were done in Windows in R-devel.)

Duncan Murdoch

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sat 01 Sep 2007 - 00:41:33 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Sun 02 Sep 2007 - 05:40:08 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel.
Please read the posting
guide before posting to the list.
*