comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Larger matrices
Date: Fri, 8 Aug 2008 16:36:07 +0200
Date: 2008-08-08T16:36:07+02:00	[thread overview]
Message-ID: <1d0ueuhuo8z2e.ewzvifms2lau$.dlg@40tude.net> (raw)
In-Reply-To: 489c542e$0$12944$9b4e6d93@newsspool2.arcor-online.net

On Fri, 08 Aug 2008 16:11:57 +0200, Georg Bauhaus wrote:

> Dmitry A. Kazakov schrieb:
>> On Fri, 08 Aug 2008 13:35:04 +0200, Georg Bauhaus wrote:
> 
>>> Ada is a systems programming language. 
> 
>> What?! Ada is a universal purpose language.
> 
> Assembly language is universal,

It is Turing complete.

> too, as are Lisp and Prolog with FFI,
> and so on.

They are not. Lisp is a list-oriented language, Prolog is a logical
inference language.

> This notion of "purpose" is not very specific.
> Let me put is this way: Ada has to be especially good at
> systems programming, hence it has to be fairly low level.

Wrong. Where that follows from? Systems programming need not to be
low-level. It has to have abstractions close to ones typical for "systems."
There is no obvious connection between these. For example, Ada offers the
notion of protected action in order represent a systems-domain specific
concept of interrupt. It is a fairly high-level abstraction.

>> But an efficient or hardware-close implementation was certainly not the
>> concern of the Ada.Numerics.Generic_Real_Arrays design. Otherwise it would
>> not use functions at all.
> 
> What hardware?

Vector processors.

> Assume data flow hardware, and assume a way
> to put the function result in the input box of the next processing unit.
> What now?

Nothing, Ada.Numerics.Generic_Real_Arrays was not designed in order to
support this hardware. Which is the point. Ada is not low-level, and its
design goals are not focused solely on efficiency, but on usability,
portability and maintainability.

> I don't see how prototyping a hypertext graph algorithm
> requires a maximally efficient implementation of matrix
> computations.

Because of the problem size. Incidence matrices grow as O(n**2), i.e.
extremely fast.

> A production system may require increased
> efficiency. At that stage you have to pay attention to
> the tiny bits, possibly redesigning the algorithm.

So, what was prototyped then? Numerics is all about algorithms. Changing
matrix representation has a huge impact on the implementation of the
operations. Technically it means that you have to re-write everything.

This BTW is exactly the problem OP has. He has "prototyped" the thing using
Ada.Numerics.Generic_Real_Arrays. Now, he faces the problem that the
prototype does not scale due to stack overflow. The consequence is a need
in full redesign. Ergo, prototyping was time wasting.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2008-08-08 14:36 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-06 13:32 Larger matrices amado.alves
2008-08-06 14:29 ` Georg Bauhaus
2008-08-06 15:01   ` amado.alves
2008-08-06 17:29     ` amado.alves
2008-08-06 17:58       ` Dmitry A. Kazakov
2008-08-06 18:40         ` amado.alves
2008-08-07  7:44           ` Dmitry A. Kazakov
2008-08-06 18:44       ` Jeffrey R. Carter
2008-08-06 19:12         ` amado.alves
2008-08-06 23:33           ` amado.alves
2008-08-07  3:02             ` Randy Brukardt
2008-08-07  6:30             ` Georg Bauhaus
2008-08-07  8:01               ` amado.alves
2008-08-07  8:55                 ` Egil Høvik
2008-08-07 19:13                 ` Jeffrey R. Carter
2008-08-08  9:59                   ` amado.alves
2008-08-08 10:38                     ` Dmitry A. Kazakov
2008-08-08 11:29                     ` Jean-Pierre Rosen
2008-08-08 13:15                       ` Jeffrey Creem
2008-08-08 13:32                         ` Dmitry A. Kazakov
2008-08-08 11:35                     ` Georg Bauhaus
2008-08-08 12:11                       ` Dmitry A. Kazakov
2008-08-08 14:11                         ` Georg Bauhaus
2008-08-08 14:36                           ` Dmitry A. Kazakov [this message]
2008-08-08 15:40                             ` Georg Bauhaus
2008-08-08 16:37                               ` Dmitry A. Kazakov
2008-08-08 17:37                                 ` Georg Bauhaus
2008-08-08 17:42                                   ` Georg Bauhaus
2008-08-08 19:51                                   ` Dmitry A. Kazakov
2008-08-09  7:44                                     ` Georg Bauhaus
2008-08-09 10:33                                       ` Dmitry A. Kazakov
2008-08-11 11:51                                         ` amado.alves
2008-08-11 13:51                                           ` Peter C. Chapin
2008-08-11 15:37                                             ` amado.alves
2008-08-13 14:03                                           ` John B. Matthews
2008-08-07 11:28             ` johnscpg
2008-08-07 12:35 ` Alex R. Mosteo
2008-08-07 13:40   ` amado.alves
2008-08-07 15:12     ` Alex R. Mosteo
2008-08-07 16:25       ` amado.alves
2008-08-07 18:21         ` amado.alves
replies disabled

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