comp.lang.ada
 help / color / mirror / Atom feed
From: "E. Robert Tisdale" <edwin@netwood.net>
Subject: Re: How to Design an Application Programmers' Interface (API)
Date: 2000/08/11
Date: 2000-08-11T00:00:00+00:00	[thread overview]
Message-ID: <3994158E.150D1FDA@netwood.net> (raw)
In-Reply-To: 39940E84.B3115EFC@maths.unine.ch

Gautier wrote:

> E. Robert Tisdale:
>
> > Unfortunately, the C, C++ and Fortran 90 language bindings
> > don't improve the BLAS library API very much.
>
> You may take a look to the Ada95 binding to BLAS :
>
>   http://topo.math.u-psud.fr/~sands/BLAS/

These thin interfaces to another language binding are called adapters.
You have implemented a very nice adapter but I'm not sure why.
Your adapter isn't really any more useful to Ada application programmers
than the Fortran 77 language binding is to Fortran application programmers.
Is it meant to help programmers implement linear algebra packages in Ada
for Ada numerical application programmers to use?

I think that Ada numerical application programmers should be able to write

    C := alpha*product(A, B) + beta*C;

and let the compiler resolve the expression to a DGEMM procedure call.
Calling DGEMM directly from an Ada application program
abrogates all of the safety feature built into the Ada language.

Take a look at the Ada95 Matrix Package

    http://dflwww.ece.drexel.edu/research/ada/

Chris Papademetrious, Xiaoxun Zhu, Moshe Kam had the right idea
but the wrong Abstract Data Type.
An Ada95 Matrix Package should support strided views (slices)
of existing arrays of numbers like every other high performance
matrix library developed over the last 50 years.
The actual details of allocating and deallocating memory
for array storage may vary slightly from one language binding to the next.





  reply	other threads:[~2000-08-11  0:00 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-10  0:00 How to Design an Application Programmers' Interface (API) E. Robert Tisdale
2000-08-10  0:00 ` Kaz Kylheku
2000-08-10  0:00   ` E. Robert Tisdale
2000-08-10  0:00     ` vrml3d.com
2000-08-10  0:00       ` Tony T. Warnock
2000-08-10  0:00         ` Toon Moene
2000-08-10  0:00         ` Keith Thompson
2000-08-10  0:00           ` E. Robert Tisdale
2000-08-10  0:00             ` Keith Thompson
2000-08-10  0:00               ` E. Robert Tisdale
2000-08-10  0:00                 ` Keith Thompson
2000-08-11  0:00                   ` David Botton
2000-08-11  0:00                 ` David Gillon
2000-08-11  0:00                   ` Peter S. Shenkin
2000-08-10  0:00       ` E. Robert Tisdale
2000-08-10  0:00 ` Jack Klein
2000-08-11  0:00 ` E. Robert Tisdale
2000-08-11  0:00   ` Larry Kilgallen
2000-08-11  0:00     ` E. Robert Tisdale
2000-08-11  0:00       ` Larry Kilgallen
2000-08-11  0:00         ` E. Robert Tisdale
2000-08-11  0:00   ` Gautier
2000-08-11  0:00     ` E. Robert Tisdale [this message]
2000-08-11  0:00       ` Gautier
2000-08-11  0:00         ` E. Robert Tisdale
2000-08-11  0:00       ` Interfacing to Numerical Programming libraries (was: How to Design..) Larry Kilgallen
2000-08-12  0:00         ` E. Robert Tisdale
2000-08-12  0:00           ` tmoran
2000-08-12  0:00             ` E. Robert Tisdale
2000-08-12  0:00         ` Sam Hobbs
2000-08-13  0:00   ` How to Design an Application Programmers' Interface (API) E. Robert Tisdale
2000-08-13  0:00     ` Gregory Pietsch
2000-08-13  0:00       ` E. Robert Tisdale
2000-08-13  0:00         ` Brendan Sechter
2000-08-13  0:00         ` Larry Kilgallen
2000-08-13  0:00         ` Gregory Pietsch
2000-08-13  0:00           ` E. Robert Tisdale
2000-08-13  0:00     ` Larry Kilgallen
replies disabled

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