From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: Floating-Point Numbers and Internal Representation
Date: Sun, 04 Dec 2005 12:12:45 +0100
Date: 2005-12-04T12:12:45+01:00 [thread overview]
Message-ID: <1843142.NoXPLYbHQs@linux1.krischik.com> (raw)
In-Reply-To: slrndp5hlm.k99.mccratch@thrakhath.kilrathi.lcn
Matthias Kretschmer wrote:
> Hello,
>
> I had a problem in one of my programs, that was caused by the internal
> representation of floating-point numbers in the fpu. Concrete:
> calculating the value of an optimum for some large number of objects,
> then in a second doing something with all optimal objects. The problem
> was, that when doing the calculation the second time, the compiler left
> the floating-point number in the fpu which had a higher precision than
> the representation I choosed, so comparing for equality returns always
> "False". The problem would be solved by some operation truncating the
> floating-point number to the precision I orginally wanted or used. I
> could of course put all the values in an array or list and then finding
> optimum and optimal objects, but I don't want to go this way. In C iirc
> I could use a volatile variable to ensure the compiler will put the
> value in and read from the variable before comparing, but to achieve
> something similiar (truncating the precision to that of the type used)
> in Ada?
Yes it is called "pragma Volatile".
> My current solution is to enhance precision to compiler maximum which
> seems to be the machine maximum. But I would like to know if there are
> any better solutions?
Comparting Floatingpoing values in equality is an allways tricky. And I
could bet I answered this question before.
Independent of CPU/Language used I would allways suggest to use
abs (X - Y) < epsilon
with a sufficient but not to small epsilon instead.
Martin
--
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com
next prev parent reply other threads:[~2005-12-04 11:12 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 [this message]
2005-12-04 14:11 ` Martin Dowie
2005-12-04 14:50 ` Dmitry A. Kazakov
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