Different results for tan(pi/2) and tanpi(1/2)
If pi were stored and computed to infinite precision then yes we would expect tan(pi/2) to be NaN, but computers in general and R specifically don't store to infinite precision (some packages allow arbitrary (but still finite) precision) and irrational numbers cannot be stored exactly. So you take the value of the built in variable pi, which is close to the theoretical value, but not exactly equal, divide it by 2 which could reduce the precision, then pass that number (which is not equal to the actual irrational value where tan has a discontinuity) to tan and tan returns its best estimate. Using finite precision approximations to irrational and other numbers that cannot be stored exactly can have all types of problems at and near certain values, that is why there are many specific functions for calculating in those regions.
On Fri, Sep 9, 2016 at 12:55 PM, Hans W Borchers <hwborchers at gmail.com> wrote:
The same argument would hold for tan(pi/2). I don't say the result 'NaN' is wrong, but I thought, tan(pi*x) and tanpi(x) should give the same result. Hans Werner On Fri, Sep 9, 2016 at 8:44 PM, William Dunlap <wdunlap at tibco.com> wrote:
It should be the case that tan(pi*x) != tanpi(x) in many cases - that is why it was added. The limits from below and below of the real function tan(pi*x) as x approaches 1/2 are different, +Inf and -Inf, so the limit is not well defined. Hence the computer function tanpi(1/2) ought to return Not-a-Number. Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Sep 9, 2016 at 10:24 AM, Hans W Borchers <hwborchers at gmail.com> wrote:
As the subject line says, we get different results for tan(pi/2) and tanpi(1/2), though this should not be the case:
> tan(pi/2)
[1] 1.633124e+16
> tanpi(1/2)
[1] NaN
Warning message:
In tanpi(1/2) : NaNs produced
By redefining tanpi with sinpi and cospi, we can get closer:
> tanpi <- function(x) sinpi(x) / cospi(x)
> tanpi(c(0, 1/2, 1, 3/2, 2))
[1] 0 Inf 0 -Inf 0 Hans Werner
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Gregory (Greg) L. Snow Ph.D. 538280 at gmail.com