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.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,f00ac8eb01f056e8,start X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news2.google.com!postnews.google.com!i21g2000yqd.googlegroups.com!not-for-mail From: "vincent.diemunsch@gmail.com" Newsgroups: comp.lang.ada Subject: Interfacing Ada to C for linear algebra Date: Fri, 2 Sep 2011 05:46:20 -0700 (PDT) Organization: http://groups.google.com Message-ID: <2cc811c2-e805-4407-8f2e-d1b5804782c9@i21g2000yqd.googlegroups.com> NNTP-Posting-Host: 192.196.142.21 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1314967664 10206 127.0.0.1 (2 Sep 2011 12:47:44 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 2 Sep 2011 12:47:44 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: i21g2000yqd.googlegroups.com; posting-host=192.196.142.21; posting-account=hya6vwoAAADTA0O27Aq3u6Su3lQKpSMz User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-Header-Order: HUALESRCNK X-HTTP-UserAgent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.1) Gecko/20100101 Firefox/6.0.1,gzip(gfe) Xref: g2news2.google.com comp.lang.ada:21798 Date: 2011-09-02T05:46:20-07:00 List-Id: Hello everybody, I would like to use in Ada some linear algebra libraries written in C, especially the SuiteSparse : http://www.cise.ufl.edu/research/sparse/SuiteSparse/ These libraries handle Sparse Matrices that are in the format used internally by MatLab : a column- compressed version of the standard matrices. Ada defines Generic_Real_Arrays to handle vectors and matrices. So I would like to simply create a Generic_Real_Sparse_Arrays package to define MatLab compatible matrices. Since the internal format of MatLab matrices is in C, in need to do a conversion between my Sparse_Matrix and the C arrays that represent the Sparse Matrix in MatLab. Looking at the implementation of Generic_Real_Arrays in GNAT, I see that they internally call the BLAS=A0and LAPACK=A0packages, written in Fortran, through the use of two packages : System.Generic_Real_BLAS and System.Generic_Real_LAPACK. These package do exactly the same as what I want to do : they convert Ada arrays of Ada floating point type in Fortran arrays of Fortran Float type and back, without using copying, so that the compiler produces no code for this conversion (using pragma Inline_Always and so on). This is important because if we use optimized versions of linear algebra packages it is because we manipulate huge arrays and we don't want to loose time in copying values from on representation to another ! I suppose that since C is very common, there must already exist a very good implementation of conversion of Ada arrays of floating point types in C arrays of C.Float, idealy using the GNAT implementation. This could save me a lot of time doing interfaces... Thank you for your responses, Vincent