comp.lang.ada
 help / color / mirror / Atom feed
From: Keith Thompson <kst-u@mib.org>
Subject: Re: Fixed point constants issue
Date: Tue, 14 Sep 2010 12:44:29 -0700
Date: 2010-09-14T12:44:29-07:00	[thread overview]
Message-ID: <lnk4mof6ua.fsf@nuthaus.mib.org> (raw)
In-Reply-To: 1f0l0baynq1x7$.phl9cqpwcr37.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> On Mon, 13 Sep 2010 19:27:30 +0200, Vinzent Hoefler wrote:
>> Is this a GNAT bug or am I just stupid?
>> 
>> Suppose we have a fixed point type (with a rather large delta):
>> 
>> -- 8< --
>> with Ada.Text_IO; use Ada.Text_IO;
>> 
>> procedure Fixed_Point
>> is
>>     FEET_PER_METER : constant := 0.3048;
>>     HEIGHT         : constant := 10; -- Feet
>>
>>    type Altitude is delta (2.0**15 / 50_000.0) range 0.0 .. 50_000.0;
>
> [...]  
>> Can anyone shed some light on this? This has driven us crazy for weeks now.
>> 
>> [1] Of course, "Altitude'(HEIGHT * FEET_PER_METER)" yields "0.0" again.
>>      At least this is consistent with my understanding so far.
>
> Hmm, what did you expect? 0.3048 (FEET_PER_METER) is 0 when Altitude. That
> is because 2.0**15/50_000.0=0.65536 > 0.3048.

Close, but actually it's because 2.0**15/50_000.0=0.65536 > 0.5.

Altitude'Delta = 0.65536.  Altitude'Small = 0.5.  If you want the
'Small to be the same as the 'Delta, you have to specify it (or
use a power of 2.0).

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Nokia
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"



      parent reply	other threads:[~2010-09-14 19:44 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-13 17:27 Fixed point constants issue Vinzent Hoefler
2010-09-13 18:04 ` Dmitry A. Kazakov
2010-09-13 18:25   ` Vinzent Hoefler
2010-09-13 19:05     ` Niklas Holsti
2010-09-13 20:35       ` Vinzent Hoefler
2010-09-13 20:35       ` Jeffrey Carter
2010-09-13 21:06         ` Vinzent Hoefler
2010-09-14  5:39         ` Niklas Holsti
2010-09-24 14:43         ` Markus Schöpflin
2010-09-24 20:05           ` Vinzent Hoefler
2010-09-24 21:38           ` Jeffrey Carter
2010-09-24 22:42             ` Vinzent Hoefler
2010-09-25  0:16               ` Jeffrey Carter
2010-09-27 10:33                 ` Markus Schöpflin
2010-09-27 18:57                   ` Jeffrey Carter
2010-09-28  8:16                     ` Markus Schöpflin
2010-09-28 17:28                       ` Jeffrey Carter
2010-10-05  6:27                         ` Randy Brukardt
2010-10-05 18:40                           ` Jeffrey Carter
2010-09-27 17:58             ` Adam Beneschan
2010-09-13 20:32     ` Dmitry A. Kazakov
2010-09-13 21:08       ` Vinzent Hoefler
2010-09-14  6:54         ` J-P. Rosen
2010-09-14 18:28           ` Vinzent Hoefler
2010-09-14  7:47         ` Dmitry A. Kazakov
2010-09-14 17:42           ` Vinzent Hoefler
2010-09-15  8:35             ` Dmitry A. Kazakov
2010-09-15 17:24               ` Vinzent Hoefler
2010-09-15 20:11                 ` Dmitry A. Kazakov
2010-09-14 19:44   ` Keith Thompson [this message]
replies disabled

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