From: Mark Johnson <Mark_H_Johnson@Raytheon.com>
Subject: Re: Dimensionality Checking (Ada 20XX)
Date: Tue, 11 Dec 2001 16:50:24 -0600
Date: 2001-12-11T16:50:24-06:00 [thread overview]
Message-ID: <3C168DB0.C139DC2@Raytheon.com> (raw)
In-Reply-To: 9v5loh$d5aki$1@ID-25716.news.dfncis.de
Nick Roberts wrote:
>
> "Stephen Leake" <stephen.a.leake.1@gsfc.nasa.gov> wrote in message
> news:upu5ln22l.fsf@gsfc.nasa.gov...
> [snip]
> > More practically, most computers used for robotics and satellite
> > simulations support fast floating point, often faster and more precise
> > than integer. So there is no reason to use fixed point.
>
> But nothing prevents a compiler from implementing fixed point
> operations/representations using the hardware's floating point unit/format.
> (Am I wrong?)
Its been a while since I've done fixed point arithmetic, but I believe
you are wrong.
A simple example using 32 bit integers and floating point.
Bam_Lsb : constant := 2.0*(-32);
type Bam is delta Bam_Lsb range 0.0 .. (1.0 - Bam_Lsb);
About 25 years ago, we used a 16 bit version of this type for "binary
angles". Zero is zero degrees, 0.5 is 180 degrees, and so on. It has a
few other nice characteristics...
- add and subtract is OK if modular arithmetic is supported [ignore
range checks]
- multiply a Bam by a fixed point range gets a useful result [work it
out]
- the error analysis is a lot easier [though most can't figure it out
anyway :-(]
and so on.
You can't represent a Bam in a 32 bit floating point - not enough
precision. Of course, our orbital models are now done in 64 bit floating
point, so the original comment is certainly accurate on a lot of systems
these days.
I would tend to use fixed point for the following cases...
- interfaces to hardware
- small target systems
- where I need absolute control of error
and floating point everywhere else.
--Mark
next prev parent reply other threads:[~2001-12-11 22:50 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-07 0:09 Dimensionality Checking (Ada 20XX) Snodgrass, Britt (NM75)
2001-12-07 16:15 ` Ian
2001-12-09 17:58 ` Nick Roberts
2001-12-09 22:58 ` Nick Roberts
2001-12-10 0:17 ` Mark Lundquist
2001-12-10 1:51 ` James Rogers
2001-12-10 3:33 ` Nick Roberts
2001-12-10 19:09 ` Nick Roberts
2001-12-11 8:20 ` Thomas Koenig
2001-12-11 15:37 ` Nick Roberts
2001-12-11 20:18 ` Thomas Koenig
2001-12-12 0:58 ` Mark Lundquist
2001-12-12 8:19 ` Wilhelm Spickermann
2001-12-12 14:21 ` Stephen Leake
2001-12-12 19:10 ` Nick Roberts
2001-12-13 19:04 ` Stephen Leake
2001-12-13 22:56 ` Nick Roberts
2001-12-14 0:11 ` Nick Roberts
2001-12-14 22:14 ` Mark Lundquist
2001-12-15 1:30 ` Nick Roberts
2001-12-10 20:22 ` Thomas Koenig
2001-12-10 17:21 ` Wes Groleau
2001-12-10 19:51 ` Mark Lundquist
2001-12-10 19:56 ` Wes Groleau
2001-12-10 20:37 ` Mark Lundquist
2001-12-10 18:56 ` Nick Roberts
2001-12-11 15:05 ` Wes Groleau
2001-12-11 16:39 ` Stephen Leake
2001-12-11 19:05 ` Nick Roberts
2001-12-11 22:50 ` Mark Johnson [this message]
2001-12-12 1:59 ` Nick Roberts
2001-12-11 23:01 ` Stephen Leake
2001-12-12 2:21 ` Nick Roberts
2001-12-12 14:16 ` Stephen Leake
2001-12-13 19:52 ` Nick Roberts
2001-12-13 22:22 ` Nick Roberts
2001-12-14 6:40 ` Robert C. Leif, Ph.D.
2001-12-14 17:30 ` Stephen Leake
2001-12-14 17:38 ` Stephen Leake
2001-12-11 22:45 ` Mark Lundquist
2001-12-12 1:42 ` Nick Roberts
2001-12-12 15:17 ` Mark Lundquist
2001-12-12 14:03 ` Stephen Leake
2001-12-12 9:35 ` Dmitry A. Kazakov
2001-12-12 14:26 ` Stephen Leake
2001-12-13 17:02 ` daniele andreatta
2001-12-13 19:06 ` Stephen Leake
2001-12-14 10:16 ` Dmitry A. Kazakov
2001-12-14 22:01 ` Nick Roberts
2001-12-17 11:10 ` Dmitry A. Kazakov
2001-12-17 12:16 ` Thomas Koenig
2001-12-17 14:30 ` Dmitry A. Kazakov
2001-12-27 17:18 ` Steven Deller
2001-12-15 7:07 ` Steven Deller
2001-12-17 12:31 ` Dmitry A. Kazakov
2001-12-17 13:46 ` Thomas Koenig
2001-12-17 15:00 ` Dmitry A. Kazakov
2001-12-17 16:38 ` Thomas Koenig
2001-12-17 21:07 ` Britt Snodgrass
2001-12-20 13:44 ` Dmitry A. Kazakov
2001-12-13 19:33 ` Mark Lundquist
2001-12-13 22:15 ` Nick Roberts
2001-12-14 20:20 ` Mark Lundquist
2001-12-10 23:31 ` Mark Lundquist
2001-12-10 13:57 ` Ian
2001-12-10 17:24 ` Wes Groleau
2001-12-10 20:38 ` Britt Snodgrass
-- strict thread matches above, loose matches on Subject: below --
2001-12-11 13:11 Mike Brenner
2001-12-11 17:03 ` Mark Lundquist
2001-12-02 16:01 Another Idea for Ada 20XX James Rogers
2001-12-03 14:56 ` Mark Lundquist
2001-12-03 15:12 ` Lutz Donnerhacke
2001-12-03 21:13 ` Dimensionality Checking (Ada 20XX) Nick Roberts
2001-12-04 14:00 ` Dmitry A. Kazakov
2001-12-06 19:52 ` Britt Snodgrass
2001-12-06 20:55 ` Mark Lundquist
2001-12-06 22:38 ` Wes Groleau
2001-12-06 23:12 ` Mark Lundquist
2001-12-07 14:36 ` Wes Groleau
2001-12-07 9:37 ` Dmitry A. Kazakov
2001-12-07 22:51 ` Mark Lundquist
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox