From: "Grein, Christoph" <christoph.grein@eurocopter.com>
Subject: Re: Announce: Grace project site operational
Date: Wed, 15 May 2002 11:58:56 +0200 (MET DST)
Date: 2002-05-15T11:58:56+02:00 [thread overview]
Message-ID: <mailman.1021456922.26837.comp.lang.ada@ada.eu.org> (raw)
From: "Martin Dowie" <martin.dowie@nospam.baesystems.com>
> "Hyman Rosen" <hyrosen@mail.com> wrote in message
> news:3CE15D0A.3050100@mail.com...
> [snip]
> > I first saw this idiom in _Scientific and Engineering C++_
> > by Bartion & Nackman.
> >
> > template<typename RepType, int Mass, int Distance, int Time>
> > struct Unit
> > {
> > RepType value;
> > explicit Unit(value) : value(value) { }
> > Unit operator+(Unit other)
> > { return Unit(value + other.value); }
> > Unit operator-(Unit other)
> > { return Unit(value - other.value); }
> > };
> [snip]
>
> Didn't someone post an Ada units package similar to
> this a while back (> 1 year)?..
This is a theme that at least once a year re-appears. There is somewhere in
Dabid Botton's AdaPower a paper by me about these physical types with a
reference to a more detailed paper how my company handles this in several
ebedded real-time avionics projects.
All "solutions" to this problem I've seen so far can be split into three
methods:
1. Use subtypes with proper names like Meter, Kilogramm, Ohm just for
documentation, i.e. no type checking.
2. Use strong types with separate types and operator overloading.
This only works (except for broken exponents like 1/2 as in sqrt (Meter);
yes, these occur quite often with rational values 1/2, 1/3, 3/2, 4/3 just
to name some) for limited subsets of SI units (two or three).
3. Discrimiated types with dimensions carried as discriminants.
This is the most general method which, if rational (not integer)
arithmetic is applied to exponents, but is run-time intensive, so possibly
not applicable to real-time.
There is a fourth method, preprocessors.
And a fifth, if you create a language that can handle dimensions.
My feeling is that method 1 should be the preferred one. two is out (expontial
explosion of number of operations, rational exponents cannot be handled), 3 if
execution time does not matter.
In theoretical phycial work, dimensionless forms of the equations are preferred
after all.
next reply other threads:[~2002-05-15 9:58 UTC|newest]
Thread overview: 153+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-15 9:58 Grein, Christoph [this message]
2002-05-15 16:12 ` Announce: Grace project site operational Ted Dennison
-- strict thread matches above, loose matches on Subject: below --
2002-05-15 11:32 Grein, Christoph
2002-05-15 13:41 ` Dmitry A. Kazakov
2002-05-08 2:38 Ted Dennison
2002-05-08 2:48 ` Larry Kilgallen
2002-05-08 12:46 ` Ted Dennison
2002-05-08 13:33 ` Marin David Condic
2002-05-09 19:54 ` Randy Brukardt
2002-05-09 20:22 ` Marin David Condic
2002-05-10 14:59 ` Ted Dennison
2002-05-10 18:54 ` Randy Brukardt
2002-05-10 14:17 ` Larry Hazel
2002-05-10 14:46 ` David C. Hoos
2002-05-10 15:38 ` Marin David Condic
2002-05-11 14:17 ` Preben Randhol
2002-05-11 16:58 ` martin.m.dowie
2002-05-11 18:55 ` William C. Brennan
2002-05-11 20:10 ` Preben Randhol
2002-05-12 8:53 ` martin.m.dowie
2002-05-13 13:18 ` Marin David Condic
2002-05-13 13:07 ` Marin David Condic
2002-05-14 15:18 ` Ted Dennison
2002-05-14 15:45 ` Marin David Condic
2002-05-15 19:56 ` Hyman Rosen
2002-05-16 13:44 ` Stephen Leake
2002-05-14 17:02 ` Martin Dowie
2002-05-15 14:57 ` Ted Dennison
2002-05-15 15:31 ` Marin David Condic
2002-05-16 21:57 ` tmoran
2002-05-17 1:55 ` tmoran
2002-05-17 13:12 ` Marin David Condic
2002-05-18 1:44 ` tmoran
2002-05-15 15:54 ` Martin Dowie
2002-05-15 17:33 ` Larry Kilgallen
2002-05-15 17:04 ` David C. Hoos
2002-05-15 22:59 ` tmoran
2002-05-16 13:36 ` Marin David Condic
2002-05-16 13:43 ` Ted Dennison
2002-05-16 14:51 ` Marin David Condic
2002-05-17 15:34 ` Stephen Leake
2002-05-20 13:47 ` Marin David Condic
2002-05-21 14:23 ` Stephen Leake
2002-05-21 17:24 ` Ted Dennison
2002-05-21 17:52 ` Marin David Condic
2002-05-22 16:20 ` Stephen Leake
2002-05-28 8:22 ` Martin Dowie
2002-05-22 16:16 ` Stephen Leake
2002-05-16 11:06 ` John English
2002-05-16 13:52 ` Stephen Leake
2002-05-16 16:40 ` Hyman Rosen
2002-05-14 17:50 ` tmoran
2002-05-14 18:07 ` Preben Randhol
2002-05-14 18:12 ` Preben Randhol
2002-05-14 18:52 ` Hyman Rosen
2002-05-15 8:17 ` Dmitry A. Kazakov
2002-05-15 18:30 ` Hyman Rosen
2002-05-16 9:16 ` Dmitry A. Kazakov
2002-05-16 19:42 ` Hyman Rosen
2002-05-17 8:35 ` Dmitry A. Kazakov
2002-05-20 17:08 ` Hyman Rosen
2002-05-21 8:34 ` Dmitry A. Kazakov
2002-05-21 15:57 ` Hyman Rosen
2002-05-22 7:48 ` Dmitry A. Kazakov
2002-05-22 11:40 ` Georg Bauhaus
2002-05-22 15:05 ` Dmitry A. Kazakov
2002-05-22 16:14 ` Georg Bauhaus
2002-05-22 16:31 ` Hyman Rosen
2002-05-23 11:40 ` Dmitry A. Kazakov
2002-05-15 8:44 ` Martin Dowie
2002-05-15 18:15 ` Stephen Leake
2002-05-15 18:39 ` Darren New
2002-05-15 19:34 ` Hyman Rosen
2002-05-15 23:52 ` Darren New
2002-05-16 7:39 ` Hyman Rosen
2002-05-16 15:35 ` Darren New
2002-05-16 17:55 ` Brian Rogoff
2002-05-16 13:35 ` Stephen Leake
2002-05-16 15:50 ` Darren New
2002-05-16 16:28 ` Hyman Rosen
2002-05-17 15:14 ` Stephen Leake
2002-05-17 16:08 ` Darren New
2002-05-17 16:41 ` Fraser Wilson
2002-05-17 16:43 ` Stephen Leake
2002-05-17 16:24 ` Marin David Condic
2002-05-17 15:03 ` Fraser Wilson
2002-05-17 15:27 ` Stephen Leake
2002-05-17 16:20 ` Fraser Wilson
2002-05-17 16:46 ` Stephen Leake
2002-05-18 6:14 ` Simon Wright
2002-05-17 15:44 ` Mark Biggar
2002-05-17 16:09 ` Fraser Wilson
2002-05-17 16:48 ` Stephen Leake
2002-05-17 21:11 ` Mark Biggar
2002-05-21 8:45 ` Dmitry A. Kazakov
2002-05-15 19:24 ` Hyman Rosen
2002-05-15 23:33 ` tmoran
2002-05-16 13:48 ` Stephen Leake
2002-05-16 14:39 ` Martin Dowie
2002-05-14 19:10 ` tmoran
2002-05-14 19:58 ` Preben Randhol
2002-05-11 19:42 ` Jeffrey Carter
2002-05-11 20:16 ` Preben Randhol
2002-05-11 19:49 ` Jeffrey Carter
2002-05-13 15:44 ` Ted Dennison
2002-05-13 16:16 ` Marin David Condic
2002-05-13 17:10 ` Stephen Leake
2002-05-13 19:07 ` Preben Randhol
2002-05-13 20:21 ` Marin David Condic
2002-05-14 15:00 ` Ted Dennison
2002-05-14 16:00 ` Stephen Leake
2002-05-14 16:30 ` Preben Randhol
2002-05-13 19:16 ` Jeffrey Carter
2002-05-13 19:19 ` Simon Wright
2002-05-11 1:23 ` Richard Riehle
2002-05-11 12:27 ` Marc A. Criley
2002-05-08 16:12 ` Hyman Rosen
2002-05-08 16:31 ` Larry Kilgallen
2002-05-08 17:16 ` Marin David Condic
2002-05-09 9:50 ` Larry Kilgallen
2002-05-09 13:32 ` Marin David Condic
2002-05-09 13:54 ` Ted Dennison
2002-05-09 14:23 ` Mário Amado Alves
2002-05-09 20:02 ` Randy Brukardt
2002-05-09 20:44 ` Marin David Condic
2002-05-10 13:06 ` Hyman Rosen
2002-05-10 16:23 ` Preben Randhol
2002-05-10 18:57 ` Hyman Rosen
2002-05-10 18:58 ` Randy Brukardt
2002-05-10 8:35 ` Dmitry A. Kazakov
2002-05-10 19:00 ` Randy Brukardt
2002-05-13 8:10 ` Dmitry A. Kazakov
2002-05-10 19:35 ` Ted Dennison
2002-05-13 8:01 ` Dmitry A. Kazakov
2002-05-10 10:25 ` Mário Amado Alves
2002-05-09 20:53 ` Simon Wright
2002-05-10 8:29 ` Dmitry A. Kazakov
2002-05-14 15:03 ` John English
2002-05-15 8:34 ` Dmitry A. Kazakov
2002-05-15 10:38 ` John English
2002-05-15 11:18 ` Dmitry A. Kazakov
2002-05-15 18:10 ` Stephen Leake
2002-05-09 14:03 ` Wes Groleau
2002-05-09 15:38 ` Marin David Condic
2002-05-11 18:10 ` William C. Brennan
2002-05-08 22:00 ` Ted Dennison
2002-05-09 5:39 ` Hyman Rosen
2002-05-09 14:21 ` Wes Groleau
2002-05-25 22:03 ` Robert I. Eachus
2002-05-08 14:32 ` Stephen Leake
2002-05-10 14:46 ` Ted Dennison
2002-05-10 7:47 ` fraser
2002-05-10 14:55 ` Ted Dennison
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox