comp.lang.ada
 help / color / mirror / Atom feed
* Re: Announce: Grace project site operational
@ 2002-05-15  9:58 Grein, Christoph
  2002-05-15 16:12 ` Ted Dennison
  0 siblings, 1 reply; 153+ messages in thread
From: Grein, Christoph @ 2002-05-15  9:58 UTC (permalink / 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.



^ permalink raw reply	[flat|nested] 153+ messages in thread
* Re: Announce: Grace project site operational
@ 2002-05-15 11:32 Grein, Christoph
  2002-05-15 13:41 ` Dmitry A. Kazakov
  0 siblings, 1 reply; 153+ messages in thread
From: Grein, Christoph @ 2002-05-15 11:32 UTC (permalink / raw)


From: "Dmitry A.Kazakov" <mailbox@dmitry-kazakov.de>
> Consider:
> 
>    type Graph_Node is private;
>    No_Node : constant Graph_Node; -- Deferred, but visible
>    function Get_Next_Child
>       (Parent : Graph_Node; Child : Graph_Node := No_Node)
>          return Graph_Node;
> 
> Here I exposed No_Node, which then can be abused like:
> 
>    Get_Next_Child (No_Node);
> 
> A solution could be some sort of incomplete declaration for
> subprograms:
> 
>    type Graph_Node is private;
>    function Get_Next_Child
>       (Parent : Graph_Node; Child : Graph_Node := <>)
>          return Graph_Node;

Your caller has to have some variable Current_Parent, which might have the value 
No_Node, e.g. when it is undefined (private types should be defaulted to 
something like this so that they always have a value even when never assigned a 
value).
So you must make sure in any case that the actual for Parent is different from 
No_Node, so the abusive

  Get_Next_Child (No_Node);

is caught in any case.

There are cases where

         .---------------------------------------.
         | Information Hiding Considered Harmful |
         `---------------------------------------'


> 
> private
>    type Graph_Node is ...;
>    No_Node : constant Graph_Node := ...;
>    function Get_Next_Child
>       (Parent : Graph_Node; Child : Graph_Node := No_Node)
>          return Graph_Node;
> 
> ---
> Regards,
> Dmitry Kazakov
> www.dmitry-kazakov.de
> _______________________________________________
> comp.lang.ada mailing list
> comp.lang.ada@ada.eu.org
> http://ada.eu.org/mailman/listinfo/comp.lang.ada



^ permalink raw reply	[flat|nested] 153+ messages in thread
* Announce: Grace project site operational
@ 2002-05-08  2:38 Ted Dennison
  2002-05-08  2:48 ` Larry Kilgallen
                   ` (2 more replies)
  0 siblings, 3 replies; 153+ messages in thread
From: Ted Dennison @ 2002-05-08  2:38 UTC (permalink / raw)


I'm pleased to announce that the Grace project is now operational. The 
homepage is at http://www.freesoftware.fsf.org/Grace/Grace_Home.html , 
and the main project page on the Gnu Savannah is at 
http://savannah.gnu.org/projects/grace/ .

Currently, the only thing in the CVS tree is the first version of our 
Unbounded Lists package, and a reference implementation of it. I have 
set up a project for a Maps package, but the tasks are currently 
unassigned. Anyone who wants to help is encouraged to participate in the 
mailing lists, get a Savannah account and become a developer, or just 
hang out here and participate in the discussions.

I'd like to say more, but that roughly covers it, and I have a crying 
baby to attend to. :-) If anyone wants to know anything more, reply here 
or on one of the mailing lists.




^ permalink raw reply	[flat|nested] 153+ messages in thread

end of thread, other threads:[~2002-05-28  8:22 UTC | newest]

Thread overview: 153+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-15  9:58 Announce: Grace project site operational Grein, Christoph
2002-05-15 16:12 ` 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

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