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
On Fri, Sep 9, 2016 at 12:24 PM, 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 > > >?When I do a ?tanpi, I see the following: ?tanpi(0.5)? is ?NaN?. Similarly for other inputs with fractional part ?0.5?. ? ?I don't know why this is, but apparently the function is working as documented. Whether that is correct or not is not for me to say.? -- Unix: Some say the learning curve is steep, but you only have to climb it once. -- Karl Lehenbauer Unicode: http://xkcd.com/1726/ Maranatha! <>< John McKown [[alternative HTML version deleted]]
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 >[[alternative HTML version deleted]]
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 > >
Apparently Analagous Threads
- Different results for tan(pi/2) and tanpi(1/2)
- Different results for tan(pi/2) and tanpi(1/2)
- Different results for cos,sin,tan and cospi,sinpi,tanpi
- Different results for cos,sin,tan and cospi,sinpi,tanpi
- Different results for cos,sin,tan and cospi,sinpi,tanpi