# Different results for tan(pi/2) and tanpi(1/2)

7 messages
Open this post in threaded view
|

## Different results for tan(pi/2) and tanpi(1/2)

 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 ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Open this post in threaded view
|

## Re: Different results for tan(pi/2) and tanpi(1/2)

 On Fri, Sep 9, 2016 at 12:24 PM, Hans W Borchers <[hidden email]> 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]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Open this post in threaded view
|

## Re: Different results for tan(pi/2) and tanpi(1/2)

 In reply to this post by Hans W Borchers-2 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 <[hidden email]> 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 > > ______________________________________________ > [hidden email] mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel>         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Open this post in threaded view
|

## Re: Different results for tan(pi/2) and tanpi(1/2)

 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 <[hidden email]> 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 <[hidden email]> > 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 >> >> ______________________________________________ >> [hidden email] mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel> > ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Open this post in threaded view
|

## Re: Different results for tan(pi/2) and tanpi(1/2)

 tanpi(x) should be more accurate than tan(pi*x), especially near multiples of pi/2. Bill Dunlap TIBCO Software wdunlap tibco.com On Fri, Sep 9, 2016 at 11:55 AM, Hans W Borchers <[hidden email]> 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 <[hidden email]> 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 <[hidden email]> > > 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 > >> > >> ______________________________________________ > >> [hidden email] mailing list > >> https://stat.ethz.ch/mailman/listinfo/r-devel> > > > >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-devel