From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,19924f2facf8443 X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!npeer02.iad.highwinds-media.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!cycny01.gnilink.net!cyclone1.gnilink.net!gnilink.net!nx01.iad01.newshosting.com!newshosting.com!83.128.0.11.MISMATCH!news-out1.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!news.k-dsl.de!news.uni-stuttgart.de!news.belwue.de!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Larger matrices Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <40ed91c2-3dab-4994-9a7b-4032058f0671@56g2000hsm.googlegroups.com> <4899b545$0$20713$9b4e6d93@newsspool4.arcor-online.net> <96f76821-fc2a-4ec1-83e7-b7b9a5be0520@r66g2000hsg.googlegroups.com> <9cabee20-877a-4fdc-80f8-7746879331da@8g2000hse.googlegroups.com> <489a9675$0$20718$9b4e6d93@newsspool4.arcor-online.net> <75a339dd-969b-4c7a-8e89-7b640171bc2f@e53g2000hsa.googlegroups.com> <13426f2d-0060-47f0-8139-09506383f648@e53g2000hsa.googlegroups.com> <489c2f68$0$1060$9b4e6d93@newsspool3.arcor-online.net> <489c542e$0$12944$9b4e6d93@newsspool2.arcor-online.net> Date: Fri, 8 Aug 2008 16:36:07 +0200 Message-ID: <1d0ueuhuo8z2e.ewzvifms2lau$.dlg@40tude.net> NNTP-Posting-Date: 08 Aug 2008 16:36:07 CEST NNTP-Posting-Host: 50e310c5.newsspool2.arcor-online.net X-Trace: DXC=Gim;ChO`nbbeoCI^f\Y]EaA9EHlD;3Ycb4Fo<]lROoRa4nDHegD_]RemG_eU2c;dgaDNcfSJ;bb[eFCTGGVUmh?dLK[5LiR>kgbg=L 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