Re: Zero does not equal Zero

• To: mathgroup at smc.vnet.net
• Subject: [mg31435] Re: Zero does not equal Zero
• From: Leszek Sczaniecki <lsczan at home.com>
• Date: Mon, 5 Nov 2001 03:48:18 -0500 (EST)
• References: <9rlt9k\$o10\$1@smc.vnet.net> <9s0h9c\$n68\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Mark Sofroniou wrote:

> You can't use Equal or SameQ for you wants because they have a built in
> tolerance that is larger than the difference you are seeking.
>

Hi Mark,

Would you please elaborate on these build-in tolerances in the context of
the following example?

In[1]:=
?\$MachineEpsilon

\$MachineEpsilon gives the smallest machine-precision number
which can be added to 1.0 to give a result that is distinguishable from
1.0.

In[2]:=
a = 1.0;
b = 1.0 + \$MachineEpsilon;
c = 1.0 + 2*\$MachineEpsilon;
d = 1.0 + 64*\$MachineEpsilon;

In[6]:=
{a === b, b === c , a === c, a === d}

Out[6]=
{True,True,False,False}

In[7]:=
{a == b, b == c , a == c, a == d}

Out[7]=
{True,True,True,True}

In[8]:=
Map[FullForm, {a, b, c, d}]

Out[8]=
{1.`,1.0000000000000002`,1.0000000000000004`,1.0000000000000142`}

In[9]:=
Map[Precision,{a, b, c, d}]

Out[9]=
{16,16,16,16}

In[10]:=
Map[Accuracy, {a, b, c, d}]

Out[10]=
{16,16,16,16}

The reason for this inquiry is that a naive user like myself would expect
these results.

Out[6]= {False,False,False,False}

Out[7]= {True,True,False,False}

Thank you,

Leszek Sczaniecki

PS
I am using Mathematica 4.1 for Microsoft Windows (November 2, 2000)

>
> [text deleted]
>
> Mark Sofroniou
> Wolfram Research

```

• Prev by Date: Re: Clearing Subscripted Variables?
• Next by Date: ListContourPlot Color
• Previous by thread: Re: Zero does not equal Zero
• Next by thread: Re: Zero does not equal Zero