comp.lang.ada
 help / color / mirror / Atom feed
From: "Elias Salomão Helou Neto" <eshneto@gmail.com>
Subject: Re: Efficiency of code generated by Ada compilers
Date: Mon, 16 Aug 2010 06:29:42 -0700 (PDT)
Date: 2010-08-16T06:29:42-07:00	[thread overview]
Message-ID: <b6eb050f-f54b-479b-8354-77a3446b29bd@d8g2000yqf.googlegroups.com> (raw)
In-Reply-To: 1fwir3k681b8x.unwo52g4gt32.dlg@40tude.net

On Aug 13, 12:37 pm, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> On Fri, 13 Aug 2010 08:08:42 -0700 (PDT), Elias Salomão Helou Neto wrote:
>
> > 1) You can, in more than one way, tell the compiler to suppress most
> > (any?) checks, but people do not advise to do so. Even if I say that I
> > do need that :(
>
> You think you need that, but you cannot know it, because you didn't used
> Ada and have no experience to realistically estimate the amount of checks
> an Ada compiler would introduce in your, not yet developed program.

This is a good point indeed! But it should be a really smart compiler
to realize that my ray-tracing algorithm is mathematically designed to
not to go out of bounds and so suppress automatically those checks.
Anyway, it wouldn't be wise not to try it out.

>
> > P.S: Multidimensional _arrays_ are not multidimensional _matrices_
>
> I don't see any difference, unless specialized non-dense matrices are
> considered.
>
> > neither are them MD _images_.
>
> Same here. Multi-channel images, sequences of images, scenes can be seen
> and implemented as  arrays. Again, unless some special hardware is in play.

Well, in such a case C could do the job, right? Encapsulating the low-
level array implementation within well designed classes, possibly
templated ones, would be a much better idea, would not?

What I meant from the beginning was to possibly write code such as
(sorry for the C++ syntax):

Matrix< 3, double > volumeImage( 100, 100, 100 );
Matrix< 2, char > asciiArt( 50, 75 );

asciiArt( 10, 10 ) = a;
volumeImage( 1, 2, 3 ) = 5.7;

Where those two or three dimensional members/constructors were
automatically generated by the compiler by using "template
metaprogramming". It will be possible with C++0x. It is already
possible by using the experimental implementation of the new standard
in GCC.

>
> > The two latter are far more specific
> > classes and the last case even needs to be templated in, say, pixel
> > type, etc.
>
> I don't see a great need in that. Usually the type of pixel (grayscale,
> tricky color models, separate channels etc) influences image operations so
> heavily that the common denominator might become too thin to be useful, at
> least in the case of image processing.

Humm, I guess you're not quite into the medical image reconstruction
field, right? Granted, you may, very likely, be a much better and
experienced programmer than I am (I am a mathematician, not a computer
scientist), but you should realize that non-overlapping pixels are not
the only beast in this world. There are useful spherically symmetric
pixels that may be parametrized in more than one way and for which you
won't find hardware implementation - recall it is image
reconstruction, not processing.

As for matrices, you've got it right when mentioned sparsity. But it
is not a truly fundamental issue for me, so let us move right along.

Again, you're right when you say that the common denominator may be
too thin. I am right now struggling to find a good compromise and for
that matter in C++ there are template specializations, which are great
in this sense - but far from ideal, of course.

> --
> Regards,
> Dmitry A. Kazakovhttp://www.dmitry-kazakov.de

Thanks,
Elias Salomão Helou Neto.



  reply	other threads:[~2010-08-16 13:29 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-06 20:21 Efficiency of code generated by Ada compilers Elias Salomão Helou Neto
2010-08-06 20:24 ` (see below)
2010-08-06 23:14 ` Shark8
2010-08-07  7:53 ` Dmitry A. Kazakov
2010-08-10 13:52   ` Elias Salomão Helou Neto
2010-08-10 14:24     ` Shark8
2010-08-10 14:28     ` Shark8
2010-08-10 15:01     ` Robert A Duff
2010-08-10 15:14       ` Yannick Duchêne (Hibou57)
2010-08-10 18:32         ` Robert A Duff
2010-08-10 15:10     ` Georg Bauhaus
2010-08-10 15:32     ` Dmitry A. Kazakov
2010-08-10 22:26     ` Randy Brukardt
2010-08-20  7:22       ` Yannick Duchêne (Hibou57)
2010-08-08 14:03 ` Gene
2010-08-08 15:49   ` Robert A Duff
2010-08-08 17:13     ` Charles H. Sampson
2010-08-08 18:11       ` Dmitry A. Kazakov
2010-08-08 20:51       ` Robert A Duff
2010-08-08 22:10         ` (see below)
2010-08-08 22:22           ` Robert A Duff
2010-08-09  4:46         ` Yannick Duchêne (Hibou57)
2010-08-09  5:52         ` J-P. Rosen
2010-08-09 13:28           ` Robert A Duff
2010-08-09 18:42             ` Jeffrey Carter
2010-08-09 19:05               ` Robert A Duff
2010-08-10 10:00                 ` Jacob Sparre Andersen
2010-08-10 12:39                   ` Robert A Duff
2010-08-09 19:33             ` Yannick Duchêne (Hibou57)
2010-08-09 21:42               ` Robert A Duff
2010-08-10 12:26         ` Phil Clayton
2010-08-10 12:57           ` Yannick Duchêne (Hibou57)
2010-08-10 14:03             ` Elias Salomão Helou Neto
2010-08-10 14:27               ` Yannick Duchêne (Hibou57)
2010-08-10 22:50                 ` anon
2010-08-10 23:28                   ` Yannick Duchêne (Hibou57)
2010-08-10 23:38                     ` Yannick Duchêne (Hibou57)
2010-08-11  7:06                       ` Niklas Holsti
2010-08-11 11:58                         ` anon
2010-08-11 12:37                           ` Georg Bauhaus
2010-08-11 13:13                         ` Robert A Duff
2010-08-11 23:49                           ` Randy Brukardt
2010-08-10 14:31               ` Shark8
2010-08-11  7:14               ` Charles H. Sampson
2010-08-11  6:42         ` Charles H. Sampson
2010-08-08 22:35     ` tmoran
2010-08-09 13:53       ` Robert A Duff
2010-08-09 17:59         ` tmoran
2010-08-09 19:36           ` Yannick Duchêne (Hibou57)
2010-08-09 21:38             ` Robert A Duff
2010-08-11  7:42       ` Charles H. Sampson
2010-08-11 13:38         ` Robert A Duff
2010-08-12  7:48           ` Charles H. Sampson
2010-08-12  8:08             ` Ludovic Brenta
2010-08-12 17:10               ` Charles H. Sampson
2010-08-12 18:06                 ` Jeffrey Carter
2010-08-11 18:49         ` Simon Wright
2010-08-12  7:54           ` Charles H. Sampson
2010-08-12  8:36             ` Dmitry A. Kazakov
2010-08-12 11:04             ` Brian Drummond
2010-08-12 19:23             ` Simon Wright
2010-08-12 20:21               ` (see below)
2010-08-13 15:08                 ` Elias Salomão Helou Neto
2010-08-13 15:10                   ` Elias Salomão Helou Neto
2010-08-13 18:01                     ` Georg Bauhaus
2010-08-13 19:52                       ` Robert A Duff
2010-08-14  9:44                         ` Georg Bauhaus
2010-08-13 20:22                     ` Robert A Duff
2010-08-14  1:34                       ` Randy Brukardt
2010-08-14  7:18                         ` anon
2010-08-13 21:57                     ` Jeffrey Carter
2010-08-13 22:37                       ` Yannick Duchêne (Hibou57)
2010-08-13 22:43                         ` Yannick Duchêne (Hibou57)
2010-08-13 23:29                         ` tmoran
2010-08-14  0:02                           ` Yannick Duchêne (Hibou57)
2010-08-14  0:16                             ` (see below)
2010-08-14 10:47                             ` Brian Drummond
2010-08-14 13:58                               ` Yannick Duchêne (Hibou57)
2010-08-15  0:23                                 ` Brian Drummond
2010-08-14 14:51                               ` (see below)
2010-08-15  0:58                                 ` Brian Drummond
2010-08-15  1:58                                   ` (see below)
2010-08-15 10:31                                     ` Brian Drummond
2010-08-13 15:37                   ` Dmitry A. Kazakov
2010-08-16 13:29                     ` Elias Salomão Helou Neto [this message]
2010-08-16 14:09                       ` Dmitry A. Kazakov
2010-08-18 14:00                         ` Elias Salomão Helou Neto
2010-08-18 16:38                           ` Dmitry A. Kazakov
2010-08-19 18:52                             ` Elias Salomão Helou Neto
2010-08-19 19:48                               ` Dmitry A. Kazakov
2010-08-13 16:58                   ` (see below)
2010-08-14 16:13                   ` Charles H. Sampson
2010-08-16 13:45                     ` Elias Salomão Helou Neto
2010-08-15 12:32 ` Florian Weimer
replies disabled

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