comp.lang.ada
 help / color / mirror / Atom feed
From: Matthias Kretschmer <mccratch@gmx.net>
Subject: Floating-Point Numbers and Internal Representation
Date: Sun, 4 Dec 2005 11:33:32 +0100
Date: 2005-12-04T11:33:32+01:00	[thread overview]
Message-ID: <slrndp5hlm.k99.mccratch@thrakhath.kilrathi.lcn> (raw)

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?

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?

-- 
Matthias Kretschmer



             reply	other threads:[~2005-12-04 10:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-04 10:33 Matthias Kretschmer [this message]
2005-12-04 11:12 ` Floating-Point Numbers and Internal Representation Martin Krischik
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