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=2.0 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,a83584e000bc28fa X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.204.10.88 with SMTP id o24mr910207bko.0.1345333225201; Sat, 18 Aug 2012 16:40:25 -0700 (PDT) Received: by 10.180.88.195 with SMTP id bi3mr1201303wib.3.1345333224761; Sat, 18 Aug 2012 16:40:24 -0700 (PDT) Path: m12ni114323bkm.0!nntp.google.com!news1.google.com!yt1no26633271wib.1!news-out.google.com!n2ni200088828win.0!nntp.google.com!feeder1.cambriumusenet.nl!feed.tweaknews.nl!195.96.0.7.MISMATCH!newsfeed.utanet.at!texta.sil.at!news.stack.nl!aioe.org!.POSTED!not-for-mail From: "Nasser M. Abbasi" Newsgroups: comp.lang.ada Subject: Re: ada lapack Date: Sat, 18 Aug 2012 18:40:09 -0500 Organization: Aioe.org NNTP Server Message-ID: References: <12f929e9-eea3-4dc9-b10d-71e4f5732e0d@googlegroups.com> <615dd222-9c8b-4878-94f7-b1cd4792bd3e@googlegroups.com> <36bc4009-6240-4797-991c-b72ec290cedc@googlegroups.com> <12606f3f-aec1-489c-8325-18e13007b6a6@googlegroups.com> <11959826-e12e-4455-b9d9-1ac4dcaf2952@googlegroups.com> <3bdbf14a-52ff-4b72-9e7b-42b543538959@googlegroups.com> <5865849c-3897-4be5-8d54-1de2e1acc3a7@googlegroups.com> <781001a0-3a99-40ac-bc5b-c8337124b29b@googlegroups.com> Reply-To: nma@12000.org NNTP-Posting-Host: 9ii5QNw33OfeoTzEH8w9ug.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Date: 2012-08-18T18:40:09-05:00 List-Id: On 8/18/2012 6:16 PM, Niklas Holsti wrote: > On 12-08-19 01:51 , Nasser M. Abbasi wrote: >> On 8/18/2012 3:45 PM, Niklas Holsti wrote: >> >>> >>> I wonder why Ada_Lapack needs convention-Fortran matrices, when it does >>> not use any Fortran code. >> >> I assumed all along this is becuase Fortran matrix is column major >> order for storing the memory layout for the matrix. C uses row >> major, and I assumed Ada does also. Fortran and Matlab uses Column >> major. > > All true (well, I don't know about Matlab, but I can believe you). > > If Ada code passes matrices to Fortran code, the Fortran layout must be > used, since the Fortran code assumes it. (Or else the Fortran code sees > the matrix as transposed.) > > But the layout of a matrix in pure Ada code does not matter (except, > possibly, for execution time) if the code accesses the matrix in the > usual way with indices. The layout matters only if the matrix is > accessed in some nasty way, such as by using overlays (for X'address use > ...) as is now done in Ada_Lapack. > humm... but Fortran pre-compiled binary code will send back a matrix data to Ada. It is 2-ways. So, the binding is telling the compiler, or the rtl to rearrange the matrix data from lapack so that it is in row major so that when it is used in Ada, it is in the correct memory layout for Ada. It is true that a user writing A(2,1) does not care how the compiler calculates the linear address of the second row, first column entry, but this assumes the data is already there in the correct layout. If I call Fortran from Ada and Fortran returns a matrix back, it will be in the wrong order in memory as far as how Ada looks at it. So someone needs to rest the layout right? I could be missing something. I am no expert at all in this. I actually program in Mathematica and Matlab and not in Ada nor in Fortran but it is good to find the reason if it is not the memory layout issue. --Nasser