comp.lang.ada
 help / color / mirror / Atom feed
From: mbk@inls1.ucsd.edu (Matt Kennel)
Subject: Re: Types with physical dimension
Date: 12 Oct 1994 03:43:23 GMT
Date: 1994-10-12T03:43:23+00:00	[thread overview]
Message-ID: <37fm0r$72r@network.ucsd.edu> (raw)
In-Reply-To: EACHUS.94Oct4115107@spectre.mitre.org

Robert I. Eachus (eachus@spectre.mitre.org) wrote:

: In article <SAL714.94Oct3133110@rs710.gsfc.nasa.gov> sal714@rs710.gsfc.nasa.gov (Stephen A. Leake) writes:

:  > I run robots with Ada, so I deal with real dimensions all the time.
:  > Very early on, I started to write a package that enforced
:  > dimensionality; I defined METERS, METERS_PER_SECOND, etc. I quickly
:  > discovered that even simple equations need up to cubic dimensions,
:  > in all combinations of length, mass and time.  Defining all these
:  > types and the associated operators was far too time-consuming to be
:  > worth it. So now I rely on code reviews and careful testing.

:  > The moral; strong typing is nice, but is no substitute for careful design
:  > and thorough testing.

:   Paul Hilfinger did a nice paper on using discriminants to check
: dimensionality.   I don't have the paper in front of me but it works
: something like this:

:    type Measure(Length,Mass,Time: Integer) is record
:      Value: Float;
:    end record;

:    subtype Meters is Measure(1,0,0);
:    subtype Kilograms is Measure(0,1,0);
:    subtype Time is Measure(0,0,1);
:    ...etc.

At one point I thought this was a good idea.  Now my feeling is that you
should have already non-dimensionalized your equations into systems of units
specific for the problem.

That way you get more understanding and "less number".  Paradoxically,
once you DON'T have physical units on your variables, it's easier to
say whether something is "big" or "small".

--
-Matt Kennel  		mbk@inls1.ucsd.edu
-Institute for Nonlinear Science, University of California, San Diego
-*** AD: Archive for nonlinear dynamics papers & programs: FTP to
-***     lyapunov.ucsd.edu, username "anonymous".



  parent reply	other threads:[~1994-10-12  3:43 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-09-27 22:18 Types with physical dimension Paul Graham
1994-09-28 13:59 ` Robert Dewar
1994-09-30  2:06   ` R_Tim_Coslet
1994-10-03 17:31 ` Stephen A. Leake
1994-10-04 11:51   ` Robert I. Eachus
1994-10-04 19:45     ` Mark A Biggar
     [not found]       ` <CxBBx8.7L@irvine.com>
1994-10-13 22:15         ` gamache
1994-10-12  3:43     ` Matt Kennel [this message]
1994-10-04 14:56   ` Robert Dewar
1994-10-05 14:53     ` Bob Gilbert
1994-10-05  8:38   ` Jean-Pierre Rosen
1994-10-05 10:35     ` Stephen J Bevan
1994-10-05 13:17       ` Jean-Pierre Rosen
1994-10-05 15:48     ` Norman H. Cohen
  -- strict thread matches above, loose matches on Subject: below --
1994-09-28 10:55 Simtel20 Transfer
1994-09-28 18:56 ` Mark A Biggar
1994-10-04  2:06 ` lmiller
     [not found] <GRAHAM.94Sep27181841@canopus.clsi.com>
1994-09-28 17:36 ` William Brennan
1994-09-28 21:41 ` Tucker Taft
1994-09-29  4:11   ` Robert Dewar
1994-09-29 11:19     ` Peter Hermann
1994-09-30 10:17       ` Dr John Stockton
1994-10-03  4:37       ` Robert Dewar
1994-09-29 13:37     ` Tucker Taft
1994-10-03  4:40       ` Robert Dewar
1994-09-28 19:28 Paul Pukite
replies disabled

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