On 18-Sep-06 Iñaki Murillo Arcos wrote: > Hello, > > I don't know if the result of > > acos(0.5) == pi/3 > > is a bug or not. It looks strange to me. > > Inaki Murillo
It is not a bug, but a feature, in that acos(0.5) and pi/3 are not computed in the same way, so (because of the small inaccuracies inevitable in their finite representations) they are indeed not equal; and this is what R is telling you. acos(0.5) - pi/3 [1] 2.220446e-16 The difference, as you can see is very small. However, if for some reason (e.g. in the logic of a programming branch which depends on such a comparison) then you could make it work by computing them in the same way: pi<-3*acos(0.5) acos(0.5) - pi/3 [1] 0 I.e. redefine pi in R so that its computation is compatible with that of acos(0.5) (but this pi is only in the current environment). However, the usual way of comparing two numbers which should theoretically be equal, but might differ slightly when computed in R, is to use all.equal(x, y) See "?all.equal". Also see "?identical". all.equal(acos(0.5),pi/3) [1] TRUE (Here I'm using R's "default" value of pi, not the value I defined above). all.equal(x,y) tests whether x and y differ by more than a tolerance which by default is .Machine$double.eps but which can be set to something else if you wish. Best wishes, Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 094 0861 Date: 18-Sep-06 Time: 23:05:01 ------------------------------ XFMail ------------------------------ ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
