Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*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 2005

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

Search the Archive

Re: The question of equality,...

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60501] Re: The question of equality,...
  • From: Peter Pein <petsie at dordos.net>
  • Date: Sun, 18 Sep 2005 01:15:56 -0400 (EDT)
  • References: <dggehc$gmv$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

terryisnow at yahoo.com schrieb:
> Ok I thought I understood this stuff but maybe not,...
> 
> If I wanted to check for bit-for-bit equality of two
> arbitrary precision numbers (without regard to how
> many of those digits are meaningful) like the way it
> would be done using the "==" operator in C, then
> neither "==" nor "===" will do the job, is that
> correct?
> 
> For "==" the 5.1 Appendix A says:
> 
> "Approximate numbers are considered equal if they
> differ in at most their last eight binary digits
> (roughly their last two decimal digits)."
> 
> For "===" the 5.1 Appendix A says:
> 
> "SameQ requires exact correspondence between
> expressions, except that it considers Real numbers
> equal if their difference is less than the uncertainty
> of either of them"
> 
> So what can I use then?
> 
> Any and all help is much appreciated.
> 
> Terry
> 
Hi Terry,

RealDigits[] does what you want:

x1 = 1.;
x2 = x1*(1 + 10^(-Floor[$MachinePrecision]));
x1 == x2

  True

RealDigits[#,10,Ceiling[$MachinePrecision]]&/@{x1,x2}

  {{{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},1},
   {{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},1}}

or bit-for-bit:

RealDigits[#,2,Ceiling[$MachinePrecision*Log[2,10]]]&/@{x1,x2}

  {{{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},1},
   {{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1},1}}

-- 
Peter Pein, Berlin
GnuPG Key ID: 0xA34C5A82
http://people.freenet.de/Peter_Berlin/


  • Prev by Date: probability with simulation
  • Next by Date: Re: Proposal to get Stephen to Improve the lot ofSpace Shuttle Programmers
  • Previous by thread: Re: The question of equality,...
  • Next by thread: Re: The question of equality,...