From: Dirk Herrmann <fight_spam@invalid.invalid>
Subject: Re: conversions between fixed-point types
Date: Sun, 20 Sep 2009 20:55:50 +0200
Date: 2009-09-20T20:55:50+02:00 [thread overview]
Message-ID: <h95trn$54e$1@news.albasani.net> (raw)
In-Reply-To: <wccskehwv98.fsf@shell01.TheWorld.com>
Robert A Duff wrote:
> Dirk Herrmann <fight_spam@invalid.invalid> writes:
>
>> In particular I am disturbed by the fact that the following two lines
>> produce different results with GNAT, as has been confirmed for GNAT
>> 3.15p (thanks, tmoran):
>
> I don't know, but it might have something to do with the rules for
> evaluating static expressions. See RM-4.9. You also need to look at
> G.2.3. I don't remember the exact rules for conversions of fixed
> point, but I think they do allow some implementation freedom.
Thanks Bob, I will look at those chapters.
> If you don't like that, then write code to make it do what
> you want.
As I said when I started this thread, I am currently investigating whether Ada
could be a good replacement for the proprietary fixed-point oriented language
used in our company. And, convincing my colleagues would certainly not be
easier with statements like "Ada can be used, but you have to implement all
fixed-point stuff yourself". Even more if you can not even rely on the fact
that a compiler will behave the same way throughout.
> Or use compatible delta/small values.
Fortunately, most (but not all) of our fixed-point code uses powers of two for
small. But, even in that case you have to care about rounding when, for
example, you are converting values from a small of 0.125 to a small of 0.5.
> By the way, you can say:
>
> for T'Small use T'Delta;
>
> to avoid repeating yourself.
I have tried that, especially since the very same recommendation was given in
the Barnes book "Ada 2005". But, GNAT gives an error message. It seems that
the very moment you reference T'Delta the type T gets "frozen" such that the
"use" statement itself freezes T before it can modify it. I don't know if
this is what the authors of the reference manual had intended, but GNAT
interprets it that way.
Thanks a lot for your help,
Dirk
next prev parent reply other threads:[~2009-09-20 18:55 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-18 21:35 conversions between fixed-point types Dirk Herrmann
2009-09-18 22:42 ` Adam Beneschan
2009-09-19 12:41 ` Dirk Herrmann
2009-09-19 14:48 ` John B. Matthews
2009-09-20 8:15 ` Dirk Herrmann
2009-09-20 14:22 ` Robert A Duff
2009-09-20 18:55 ` Dirk Herrmann [this message]
2009-09-20 20:34 ` Simon Clubley
2009-09-23 20:46 ` Dirk Herrmann
2009-09-27 17:15 ` Simon Clubley
2009-09-27 19:22 ` sjw
2009-09-28 20:18 ` Dirk Herrmann
2009-09-28 18:37 ` Robert A Duff
2009-09-28 20:50 ` Dirk Herrmann
2009-09-20 15:18 ` John B. Matthews
2009-09-20 19:13 ` Dirk Herrmann
2009-09-20 20:09 ` tmoran
2009-09-21 17:24 ` Jeffrey R. Carter
2009-09-23 20:57 ` Dirk Herrmann
2009-09-23 22:28 ` Jeffrey R. Carter
2009-09-24 1:05 ` Adam Beneschan
2009-09-24 3:57 ` Jeffrey R. Carter
2009-09-25 8:47 ` Stuart
2009-09-25 20:41 ` sjw
2009-09-25 21:58 ` Jeffrey R. Carter
2009-09-28 13:40 ` Stuart
2009-09-26 14:43 ` Dirk Herrmann
2009-09-28 15:15 ` Adam Beneschan
2009-09-26 14:31 ` Dirk Herrmann
2009-09-19 18:38 ` tmoran
2009-09-20 8:22 ` sjw
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox