MathGroup Archive 2005

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

Search the Archive

Re: The question of equality,...

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60601] Re: The question of equality,...
  • From: Bill Rowe <readnewsciv at earthlink.net>
  • Date: Wed, 21 Sep 2005 03:20:45 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

On 9/20/05 at 5:20 AM, ted.ersek at tqci.net wrote:

>Terry Snow wanted to know how to tell if two arbitrary precision
>numbers are the same even including the bits that are not known
>reliably. Consider the following:

>In[1]:=   $Pre=InputForm;

>In[2]:=  x1=N[1/10,18]

>Out[2]=    0.100000000000000000000000000005049`18

>In[3]:=  x2=x1+10^-32

>Out[3]=   0.100000000000000000000000000005059`18

>Others suggested using RealDigits, but it seems RealDigits doesn't
>tell us about digits that may be wrong.

>In[4]:=  RealDigits[x1]

>Out[4]=  {{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
>0}

RealDigits works fine *if* you compare binary digits, i.e.,

In[1]:=
x1 = 1.; 
x2 = x1 + 10^-$MachinePrecision; 

In[3]:=
RealDigits[x1] == RealDigits[x2]
Out[3]=
True

In[4]:=
RealDigits[x1, 2] == RealDigits[x2, 2]
Out[4]=
False

Note, I didn't use your particular example since on my system

In[5]:=
x1 = N[1/10, 18]
Out[5]=
0.1`18.

In[6]:=
x2 = x1 + 10^(-32)
Out[6]=
0.1`18.

In[11]:=
SetPrecision[x2 - x1, Infinity]
Out[11]=
0

That is the two numbers of your example are identical on my system.
--
To reply via email subtract one hundred and four


  • Prev by Date: Problem in loading the Statistics package.
  • Next by Date: More strange behavior by ComplexExpand
  • Previous by thread: Re: The question of equality,...
  • Next by thread: Extracting coefficients for sinusoidals