Re: [Rd] Friday question: negative zero

From: Jeffrey Horner <jeff.horner_at_vanderbilt.edu>
Date: Sat, 01 Sep 2007 11:49:03 -0500

deepayan.sarkar_at_gmail.com wrote:

> 
> On 8/31/07, Duncan Murdoch <murdoch_at_stats.uwo.ca> wrote:

>> 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.)
> 
> No, I get
> 

>> 1/ Im(1/complex(real = -1))
> [1] Inf

>> sessionInfo()
> R version 2.6.0 Under development (unstable) (2007-08-16 r42532) 
> x86_64-unknown-linux-gnu 
> 
> This is on an AMD 64, and I get -Inf on everything else I've tried so far, which are all Intel. 

Okay, I hope this isn't line noise, but our AMD 64 with R version 2.5.1 gets:

 > 1/ Im(1/complex(real = -1))
[1] -Inf

 > sessionInfo()
R version 2.5.1 (2007-06-27)
x86_64-pc-linux-gnu

locale:
LC_CTYPE=en_US;LC_NUMERIC=C;LC_TIME=en_US;LC_COLLATE=en_US;LC_MONETARY=en_US;LC_MESSAGES=en_US;LC_PAPER=en_US;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US;LC_IDENTIFICATION=C

attached base packages:
[1] "stats" "graphics" "grDevices" "utils" "datasets" "methods" [7] "base"

Should I compile R-devel and post the results of the above?

Jeff

-- 
http://biostat.mc.vanderbilt.edu/JeffreyHorner

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Sat 01 Sep 2007 - 17:04:18 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 Sat 01 Sep 2007 - 19:40:17 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.