comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Floating-Point Numbers and Internal Representation
Date: Sun, 4 Dec 2005 15:50:04 +0100
Date: 2005-12-04T15:50:03+01:00	[thread overview]
Message-ID: <4fnetd7d1gzw$.6esjklahq38$.dlg@40tude.net> (raw)
In-Reply-To: dmutf4$gpt$1@nwrdmz03.dmz.ncs.ea.ibs-infra.bt.com

On Sun, 4 Dec 2005 14:11:49 +0000 (UTC), Martin Dowie wrote:

> Martin Krischik wrote:
>> Independent of CPU/Language used I would allways suggest to use
>> 
>> abs (X - Y) < epsilon
>> 
>> with a sufficient but not to small epsilon instead.
> 
> Suggested reading:
> 
> http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
>
> There is more than one answer to this problem...

Epsilon above can well be relative that depends solely on the algorithm.
Usually epsilon is estimated in the course of calculations together with X
and Y, as a part of the algorithm. So the answer is still same. (:-))

BTW, I wouldn't use division to evaluate relative errors as the paper
suggest. Rather:

Half_Epsilon * (abs X + abs Y)

A really different answer would be interval arithmetic. If X and Y were
intervals they would carry the accuracy estimation with them. So one could
directly compare them:

case X < Y or X > Y is -- The result is not Boolean!
   when False | Uncertain =>
       -- The difference cannot be distinguished from accumulated
       -- inaccuracy
   when True =>
       -- They are sufficiently different
end case;

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2005-12-04 14:50 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-04 10:33 Floating-Point Numbers and Internal Representation Matthias Kretschmer
2005-12-04 11:12 ` Martin Krischik
2005-12-04 14:11   ` Martin Dowie
2005-12-04 14:50     ` Dmitry A. Kazakov [this message]
2005-12-04 15:15       ` Matthias Kretschmer
2005-12-04 18:14         ` Dmitry A. Kazakov
2005-12-04 21:16           ` Matthias Kretschmer
2005-12-06  2:54     ` Steve
2005-12-05 23:38   ` Randy Brukardt
2005-12-04 11:46 ` Dmitry A. Kazakov
2005-12-04 21:29 ` Gautier Write-only
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox