From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Expressing physical units (Was: Reprise: 'in out' parameters for functions)
Date: Wed, 14 Apr 2004 10:49:45 +0200
Date: 2004-04-14T10:49:45+02:00 [thread overview]
Message-ID: <c5itvj$25vpm$4@ID-77047.news.uni-berlin.de> (raw)
In-Reply-To: nq3fc.17238$d8.6386@nwrdny01.gnilink.net
Hyman Rosen wrote:
> Dmitry A. Kazakov wrote:
>> 1. Shifted units, like Celsius degree.
>
> This can be done by adding an extra shift prameter.
But C++ does not allow double as a template parameter.
> You would also need
> to describe the units system more thoroughly. The standard units can
> appear in positive or negative powers, but you obviously cannot do this
> with shifted units.
Why? It is no matter. Shifted units represent linear scales:
x = a * y + b
The dimension of a and b may have any powers.
>> 2. Dealing with units unknown at compile time. How would you communicate
>> with a data base, or develop a gauge widget, or write a unit calculator?
>
> This requires a different solution. But that's OK. If many applications
> do not need this dynamic behavior, then they stand to benefit from the
> zero-overhead of the given solution.
Because there can be a universal solution with zero-overhead in static case.
>> How to write a unit I/O package?
>
> I demonstrated that in another post. You write a bunch of 'if' statements
> whose conditions depend on the template parameters, and they are all known
> at compile-time for a given unit.
(:-))
>> 3. Dealing with multiple unit systems.
>
> You can add a scale factor template parameter for each dimension, and then
> they will be different types, so the compiler will prevent you from adding
> mm to cm, say.
Not that is the problem. One can add 1 [mm] and 1 [cm], it is legal. The
question is in which unit system the arguments are and the result will be.
There could be a need to have both m,s,A,... and mm,h,kA,..., for reasons I
explained before.
>> 5. How to handle logarithmic units and other non-linear scales?
>
> By specializing the templates for these units to do the appropriate
> operations. Ada does not have the concept of specialized templates, but
> C++ does.
I do not see how you could add x in meters of SI with y in ft of logarithmic
scale using specialized templates. To represent scale you will probably
need some pointer to the scale descriptor in your template.
>> 7. Any generic (template) solution would make everything based upon it
>> also generic.
>
> Modern C++ programmers see that as an opportunity, not a problem!
I do not see any way of making a GUI or DB interface based on templates.
Consider a distributed system with should have a communication protocol to
exchange physical measures. How would you do it using templates? Consider a
large finite element library. If that has to be used for physical values,
then the whole library has to be generic.
--
Regards,
Dmitry A. Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2004-04-14 8:49 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <u4qrv5hwr.fsf@acm.org>
2004-04-08 17:19 ` Reprise: 'in out' parameters for functions Alexander E. Kopilovich
[not found] ` <bRecOT0TxF@VB1162.spb.edu>
2004-04-08 23:46 ` Stephen Leake
2004-04-09 9:23 ` Florian Weimer
2004-04-09 10:04 ` Dmitry A. Kazakov
2004-04-09 11:23 ` Martin Krischik
2004-04-09 12:44 ` Dmitry A. Kazakov
2004-04-09 22:48 ` Randy Brukardt
2004-04-14 14:40 ` Robert I. Eachus
2004-04-14 21:20 ` Randy Brukardt
2004-04-09 22:47 ` Florian Weimer
2004-04-10 10:49 ` Dmitry A. Kazakov
2004-04-10 11:11 ` Florian Weimer
2004-04-10 13:26 ` Dmitry A. Kazakov
2004-04-10 20:50 ` Georg Bauhaus
2004-04-11 10:31 ` Dmitry A. Kazakov
2004-04-09 11:27 ` Stephen Leake
2004-04-09 22:46 ` Randy Brukardt
2004-04-09 13:12 ` Wojtek Narczynski
2004-04-09 15:48 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Jacob Sparre Andersen
2004-04-10 13:07 ` Wojtek Narczynski
2004-04-10 13:52 ` Jacob Sparre Andersen
2004-04-11 2:45 ` Hyman Rosen
2004-04-11 10:14 ` Expressing physical units Jacob Sparre Andersen
2004-04-11 16:05 ` Hyman Rosen
2004-04-12 6:58 ` Expressing physical units (Was: Reprise: 'in out' parameters for functions) Russ
2004-04-12 10:29 ` Dmitry A. Kazakov
2004-04-13 6:52 ` Russ
2004-04-13 10:55 ` Dmitry A. Kazakov
2004-04-14 4:50 ` Hyman Rosen
2004-04-14 8:49 ` Dmitry A. Kazakov [this message]
2004-04-14 16:49 ` Hyman Rosen
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-14 7:10 ` Russ
2004-04-14 8:53 ` tmoran
2004-04-14 9:01 ` Vinzent 'Gadget' Hoefler
2004-04-14 9:21 ` Dmitry A. Kazakov
2004-04-13 9:53 ` Wojtek Narczynski
2004-04-15 21:27 ` Expressing physical units Jacob Sparre Andersen
2004-04-16 11:40 ` Dmitry A. Kazakov
2004-04-09 16:17 ` Reprise: 'in out' parameters for functions Georg Bauhaus
2004-04-10 2:28 ` Wojtek Narczynski
2004-04-10 9:46 ` Georg Bauhaus
2004-04-10 10:49 ` Dmitry A. Kazakov
2004-04-10 15:35 ` Wojtek Narczynski
2004-04-10 21:01 ` Georg Bauhaus
2004-04-10 21:16 ` Georg Bauhaus
2004-04-11 13:20 ` exception parameters Stephen Leake
2004-04-12 10:29 ` Dmitry A. Kazakov
2004-04-13 0:58 ` Stephen Leake
2004-04-13 1:30 ` Randy Brukardt
2004-04-13 8:04 ` Jean-Pierre Rosen
2004-04-11 10:31 ` Reprise: 'in out' parameters for functions Dmitry A. Kazakov
2004-04-12 22:02 ` Randy Brukardt
2004-04-13 10:56 ` Dmitry A. Kazakov
2004-04-14 21:12 ` Randy Brukardt
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-13 9:30 ` Wojtek Narczynski
2004-04-13 12:00 ` Dmitry A. Kazakov
2004-04-13 22:41 ` Wojtek Narczynski
2004-04-14 8:49 ` Dmitry A. Kazakov
2004-04-14 15:03 ` Wojtek Narczynski
2004-04-15 10:37 ` Dmitry A. Kazakov
2004-04-16 0:29 ` Wojtek Narczynski
2004-04-16 11:36 ` Dmitry A. Kazakov
2004-04-16 19:25 ` Wojtek Narczynski
2004-04-14 15:57 ` Robert I. Eachus
2004-04-15 8:04 ` Dmitry A. Kazakov
2004-04-10 12:32 ` Wojtek Narczynski
2004-04-14 15:46 ` Robert I. Eachus
2004-04-16 1:52 ` Wojtek Narczynski
2004-04-16 5:40 ` Robert I. Eachus
2004-04-16 11:38 ` Wojtek Narczynski
2004-04-16 16:30 ` Robert I. Eachus
2004-04-16 18:38 ` Randy Brukardt
2004-04-16 22:15 ` Wojtek Narczynski
2004-04-17 1:20 ` Robert I. Eachus
2004-04-17 11:42 ` Wojtek Narczynski
2004-04-17 14:14 ` Robert I. Eachus
2004-04-16 19:28 ` Wojtek Narczynski
2004-04-09 17:09 ` Pascal Obry
2004-04-10 2:37 ` Wojtek Narczynski
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox