From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Wed 01 Jun 2005 - 17:31:59 GMT

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Thu Jun 02 03:36:09 2005

Date: Wed 01 Jun 2005 - 17:31:59 GMT

On 6/1/05, Simon Urbanek <simon.urbanek@r-project.org> wrote:

> On Jun 1, 2005, at 5:50 AM, (Ted Harding) wrote:

*>
**> > However, a query: Clearly from the above (ahich I can reproduce
**> > too), tan() can distinguish between -0 and +0, and return different
**> > results (otherwise 1/tan() would not return different results).
**> >
**> > But how can the user tell the difference between +0 amnd -0?
**>
**> That's indeed a good question - by definition (-0)==(+0) is true,
**> -0<0 is false and signum of both -0 and 0 is 0.
**>
**> I don't see an obvious way of distinguishing them at R level. Besides
**> computational ways (like the 1/tan trick) the only (very ugly) way
**> coming to my mind is something like:
**> a==0 && substr(sprintf("%f",a),1,1)=="-"
**> Note that print doesn't display the sign, only printf does.
*

On my XP machine running R 2.1.0 patched 2005-05-14

> sprintf("%f",-0)

[1] "0.000000"

does not print the sign.

however, the tan trick can be done without tan using just division:

R> sign0 <- function(x) if (x != 0) stop("x not zero") else sign(1/x)
R> sign0(0)

[1] 1

R> sign0(-0)

[1] -1

R-devel@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Thu Jun 02 03:36:09 2005

*
This archive was generated by hypermail 2.1.8
: Mon 24 Oct 2005 - 22:26:57 GMT
*