Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2001
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Zero does not equal Zero

  • To: mathgroup at smc.vnet.net
  • Subject: [mg31368] Re: [mg31360] Zero does not equal Zero
  • From: Otto Linsuain <linsuain at andrew.cmu.edu>
  • Date: Wed, 31 Oct 2001 03:30:59 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

I could not reproduce your error, here is my output from Mathematica 4

In[1]:=
y=x+SetPrecision[5.9*^-450,30];
{y-x,y-x\[Equal]0}

Out[2]=
\!\({5.89999999999999999999999999999902278223326`30*^-450, False}\)

I pasted this from a Mathematica notebook. A very curious point is that,
in the notebook, the output looked like:

{5.90000000000000000000000000000000000000 x 10^-450, False}

but it changed upon "mousing" it !!

But still, I haven't been able to reproduce a situation where x-y prints
0. x 10^some power and x-y==0 prints False. Also, we have to reckon with
the fact that the output of x-y depends on printing options, besides
precision.

Well, that is my grain of sand. Otto Linsuain.

 On Tue, 30 Oct 2001, Ersek, Ted R wrote:

> Hello Group,
>
> It seems people didn't fully grasp the inconsistency that I pointed to in my
> earlier message with the same subject.  I came across this problem when I
> tried to make my RootSearch package (recent MathSource addition) capable of
> finding roots to a an arbitrary precision.  To allow that I had to make a
> function similar to Ulp[x] in the NumericalMath`Microscope` package.  Among
> other things my version of Ulp can work with arbitrary precision numbers.
> Unfortunately I can't make RootSearch work as well as I would like because
> of the problem I demonstrate below.
>
> First consider the next line which demonstrates that a StandardForm output
> such as (0.  x 10^-20) represents an arbitrary precision number that is more
> or less zero.
>
> In[1]:=
>    x=Exp[ N[Pi/3, 20] ];
>    x-x
>
> Out[1]=
>    0. x 10^-20
>
>
> Now suppose we want to find the arbitrary precision number that is slightly
> larger than x, but as close as possible to x and still a different number.
> What do I mean when I say "a different number"?  Well if x and y are
> different numbers their difference should not be zero.  In the first case
> below I view x and y as essentially the same number.
>
> In[2]:=
>    y=x+SetPrecision[5.96*^-20, 30];
>    {y-x, y-x==0}
>
> Out[4]=
>    {0. x 10^-20, True}
>
>
> What about the next case.  Here the StandardForm of (x-y) looks like zero,
> but (x-y==0) returns False.  Are x and y "different numbers"?  Why does
> (x-y) return False in the next line, but True in the slightly different case
> above?  I think when comparing numeric values (x-y==0) should return True
> IF AND ONLY IF  the StandardForm of (x-y) is zero.  When I say "is zero",
> that includes (0. x 10^-20) and similar output.
>
>
> In[5]:=
>    y=x+SetPrecision[5.97*^-20, 30];
>    {y-x, y-x==0}
>
> Out[6]
>    {0. x 10^-20, False}
>
>
> --------
> Regards,
>   Ted Ersek
>
>
>



  • Prev by Date: RE: commuting and non-commuting symbols
  • Next by Date: RE: 2D to 3D graphics? and Thickness of Lines and Arcs
  • Previous by thread: Zero does not equal Zero
  • Next by thread: RE: Zero does not equal Zero