comp.lang.ada
 help / color / mirror / Atom feed
From: "Stephane Richard" <stephane.richard@verizon.net>
Subject: Re: Why no 'Floor for fixed point types
Date: Tue, 28 Oct 2003 18:34:36 GMT
Date: 2003-10-28T18:34:36+00:00	[thread overview]
Message-ID: <0Fynb.33992$1C5.19954@nwrdny02.gnilink.net> (raw)
In-Reply-To: bnmc74$137bsk$1@ID-25716.news.uni-berlin.de

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3265 bytes --]

In the worlds of our common savior <- .oO( Yeah Right!!! ) Bill
Gates...hehehe....if nobody cares, it's a bug...if everyone cares, it's a
feature..;-)

-- 
St�phane Richard
"Ada World" Webmaster
http://www.adaworld.com


"Nick Roberts" <nick.roberts@acm.org> wrote in message
news:bnmc74$137bsk$1@ID-25716.news.uni-berlin.de...
> Robert I. Eachus wrote:
>
> > ...  Trying to test even a small
> > subset of all possible reasonable values of 'Small and fixed-point
> > numbers just isn't reasonably possible without trillions of machines
> > crunching for millions of years.   So your compiler probably has
> > millions of errors in the low order bit that are just not practical to
> > find, and of no real interest to anyone anyway.
>
> So possibly a question we should ask is "If nobody cares, does it count as
> an error (or bug)?" I admit, there might be a few Intel customers who'd
> like to know the answer to that one. :-)
>
> > From experience with
> > fixed-point, the tough cases are of the form A := Fixed(B*C); where B
> > and C are of two other types than Fixed, and there is no easy
> > representation of Fixed'Small/(B_type'Small * C_type'Small).
>
> What do you mean when you say these are tough cases? The RM95 essentially
> says that the result is either of the representable values (of the type
> Fixed here) which bound the precise result.
>
> > In practice those cases are of little or no interest to anyone.  If your
> > compiler correctly implements A := A * I; where I is an Integer, or A :=
> > B + C; where all three are of the same fixed-point type, then I and most
> > other fixed-point users won't care about those painful cases.  Other
> > than, of course, to note that they exist so that we can avoid them.
>
> But why are the cases you refer to painful? Do they really need to be
avoided?
>
> I can certainly see that if a calculation causes a missile to hit
someone's
> house (instead of the next door embassy), it might be quite painful for
the
> occupants of the house. Are you saying that these cases are capable of
> being sources of nasty accidents, or are you saying that they are merely
an
> academic curiosity, of no possible practical consequence? (And I realise
> this may be a slightly unfair question.)
>
> > If you do use the three type multiplication operator, you should check
> > whether it is an easy or hard case, and avoid the hard cases.  (Any
> > conversion where the target type is the same as one of the multiplicand
> > types counts as easy, since it can be done with a single division.)
>
> Would you please provide an example, to illustrate this point.
>
> > I'm not trying to scare anyone here.  In fact one of the differences
> > between Ada 83 and Ada 95 is that the error bounds on the hard cases
> > were changed to make them easier to implement.  The hard cases do come
> > up, and for example, one of the harder parts of the Euro conversion was
> > to specify rules and error bounds for some of these three type
> > conversions.  (Say from Marks to Kronar, using today's market rates for
> > Marks to Euros and Euros to Kronar.)
>
> I seem to dimly recall you mentioning this before, Robert. Was it in
> comp.lang.ada? I would like to review it on Google, if possible.
>
> -- 
> Nick Roberts
>





  reply	other threads:[~2003-10-28 18:34 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-23 20:09 Why no 'Floor for fixed point types Duncan Sands
2003-10-23 22:06 ` Robert I. Eachus
2003-10-24 16:00   ` Stephen Leake
2003-10-24 18:13     ` Duncan Sands
2003-10-23 23:10 ` Martin Dowie
2003-10-24 21:46 ` Nick Roberts
2003-10-25  4:29   ` Robert I. Eachus
2003-10-25 20:42     ` Nick Roberts
2003-10-25 22:40       ` Robert I. Eachus
2003-10-27 18:59         ` Randy Brukardt
2003-10-28  1:19           ` Robert I. Eachus
2003-10-28 18:23             ` Nick Roberts
2003-10-28 18:34               ` Stephane Richard [this message]
2003-10-29 19:26               ` Randy Brukardt
2003-10-30  4:55                 ` Robert I. Eachus
2003-10-28 18:10         ` Nick Roberts
2003-10-27 18:49       ` Randy Brukardt
2003-10-28 18:32         ` Nick Roberts
2003-10-29 19:29           ` Randy Brukardt
2003-10-30 23:41             ` Nick Roberts
2003-10-31 22:25               ` Randy Brukardt
2003-11-06  2:41                 ` Nick Roberts
replies disabled

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