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=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,81bb2ce65a3240c3 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.220.230 with SMTP id pz6mr13484970pbc.3.1341588562462; Fri, 06 Jul 2012 08:29:22 -0700 (PDT) Path: l9ni11004pbj.0!nntp.google.com!news1.google.com!feed-C.news.volia.net!volia.net!news2.volia.net!feed-A.news.volia.net!news.musoftware.de!wum.musoftware.de!news.swapon.de!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: What would you like in Ada202X? Date: Fri, 06 Jul 2012 16:29:20 +0100 Organization: A noiseless patient Spider Message-ID: References: <3637793.35.1335340026327.JavaMail.geo-discussion-forums@ynfi5> <4ff312ad$0$6178$ba4acef3@reader.news.orange.fr> <4ff314d8$0$6218$ba4acef3@reader.news.orange.fr> <856acffb-1fc3-474e-b11f-f540977e945f@googlegroups.com> <0o59v7djiffnl7sqdpp2uiso78oa9hb8sb@invalid.netcom.com> Mime-Version: 1.0 Injection-Info: mx04.eternal-september.org; posting-host="wPUzpm2FtXyp8tZMxPIs9A"; logging-data="12271"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ht8MFlEyrOAcWoF2UbkrWTxabLnok/ao=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (darwin) Cancel-Lock: sha1:VGRJXk+dk83Rc5h82buIbNDnDGw= sha1:jD91rEDqwImqNQmc/3IX6Dgio7w= Content-Type: text/plain Date: 2012-07-06T16:29:20+01:00 List-Id: Ada novice writes: > On Thursday, July 5, 2012 5:57:12 PM UTC+1, Simon Wright wrote: > >> One thing I _don't_ see in the SVN history is any indication of _why_ >> this change was made. >> > > Perhaps some information here: > http://patchwork.ozlabs.org/patch/123609/ > http://gcc.gnu.org/ml/gcc-patches/2011-08/msg02324.html > http://gcc.gnu.org/ml/gcc-patches/2011-08/msg02408.html > > YC Thanks. The reasons, from the patch diff, ore +-- This version of Generic_Real_Arrays avoids the use of BLAS and LAPACK. One +-- reason for this is new Ada 2012 requirements that prohibit algorithms such +-- as Strassen's algorithm, which may be used by some BLAS implementations. In +-- addition, some platforms lacked suitable compilers to compile the reference +-- BLAS/LAPACK implementation. Finally, on many platforms there may be more +-- floating point types than supported by BLAS/LAPACK. The last post you reference asked what Ada 2012 requirements prohibit Strassen's algorithm. Answer came there none; however, looking at the AARM, G.3.1(86.c)[1] is fairly explicit, and AI05-0047-1[2] shows the reasoning. The AI starts "It is clarified that subcubic methods cannot be used for the implementation of matrix multiplication using "*" in the strict mode." Although a BLAS might use Strassen for very large matrices, (a) it probably won't for the sort of reasonably-sized matrices you might find in an Ada program (b) whether it ever uses Strassen is probably documented. My Ada 2005 Math Extensions will continue to use BLAS/LAPACK; interfacing to an amazing pair of packages like these I can do, re-invent the wheels I can't and won't. [1] http://www.ada-auth.org/standards/12aarm/html/AA-G-3-1.html#p86.c [2] http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai05s/ai05-0047-1.txt?rev=1.11