Re: Beware of adding 0.0

*To*: mathgroup at smc.vnet.net*Subject*: [mg50245] Re: Beware of adding 0.0*From*: "paul" <paul at AOI.com>*Date*: Mon, 23 Aug 2004 06:34:06 -0400 (EDT)*References*: <cg4fcn$cf5$1@smc.vnet.net> <cg97i2$a62$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Indeed a nice problem Professor! Thank you for sharing it. Would you mind helping us understand something, why is it that when we give the following input: In[69]:= p = 314159265358979323 q = 314159265358979323. r = 314159265358979323.00000000000000000000; s = p + 0.00000000000000000000; {p, q, r, s} {N[Tan[p]], N[Tan[q]], N[Tan[r]], N[Tan[s]]} And get the following output: Out[69]= 314159265358979323 Out[70]= \!\(3.14159265358979323`17.497149872694134*^17\) Out[73]= \!\({314159265358979323, 3.14159265358979323`17.497149872694134*^17, 3.14159265358979323`37.49714987269414*^17, 3.141592653589793`*^17}\) Out[74]= {1.60125, ComplexInfinity, -1.12979, 1.60125} Then, the output for Tan[p] and Tan[q] give two different answers? Even though they are almost exactly the same numbers (only different in precision), If it can calculate the Tan[314159265358979323] then why is it not able to give an approximate value for Tan[3.14159265358979323`17.497149872694134*^17], Also, if it calculates Tan[314159265358979323] to be 1.60125, then why does it give Tan[3.14159265358979323`37.49714987269414*^17] with such a severe variation (-1.12979)? Thanks for your help, Regards, "Richard Fateman" <rfateman at sbcglobal.net> wrote in message news:cg97i2$a62$1 at smc.vnet.net... > Paul, since you are copying this from my posting to sci.math.symbolic > of August 19,2004, (yesterday) perhaps you should give me credit. > I took the example from my own paper, A Review of Mathematica, > which appeared in J. Symbolic Computation,(1992) and a version of which > is online. You might also read Mark Soufroniou's INRIA paper (1999?) > explaining why this behavior is apparently intentional, even if it is > hard to explain (shown by the responses you got). > > The idea that 0.0 should represent all numbers in [-1,1]* 2^{-precision} > is generally regarded with skepticism by computational scientists. Some > of the other consequences of this are discussed by Soufroniou and others. > RJF > > > > paul wrote: > > In Mathematica 5.0, I get a very strange result when I add 0.0 to a number, > > why is this? See below: > > > > p = SetPrecision[314159265358979323, 25] > > q = SetPrecision[314159265358979323., 25] > > r = SetPrecision[314159265358979323.00000000000000000000, 25] > > s = SetPrecision[p + 0.0, 25] > > {p == q, q == r, r == s, r == p} > > {Tan[s], N[Tan[p]], Tan[q], Tan[r]} > > > > > > \!\(3.14159265358979323`25.*^17\) > > Out[47]= > > \!\(3.14159265358979323`25.*^17\) > > Out[48]= > > \!\(3.14159265358979323`25.*^17\) > > Out[49]= > > \!\(3.14159265358979328`25.*^17\) *****NOTICE the 28 instead of 23 at the > > end, why does this happen? ******* > > Out[50]= > > {True, True, False, True} > > Out[51]= > > {1.599808, -1.12979, -1.1297927, -1.1297927} > > >

**Follow-Ups**:**Re: Re: Beware of adding 0.0***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>

**Re: Re: Beware of adding 0.0***From:*DrBob <drbob@bigfoot.com>