comp.lang.ada
 help / color / mirror / Atom feed
From: "E. Robert Tisdale" <edwin@netwood.net>
Subject: Re: Interfacing to Numerical Programming libraries (was: How to Design..)
Date: 2000/08/12
Date: 2000-08-12T00:00:00+00:00	[thread overview]
Message-ID: <3994AF88.A84A6E29@netwood.net> (raw)
In-Reply-To: jXWnUlbnNfCd@eisner.decus.org

Larry Kilgallen wrote:

> In article <3994158E.150D1FDA@netwood.net>,
> "E. Robert Tisdale" <edwin@netwood.net> writes:
>
> > These thin interfaces to another language binding are called adapters.
>
> Here in comp.lang.ada they are called thin bindings.

Bindings to what?
The BLAS library API does not specify any language for implementation.
It might be implemented in Ada 95, in which case,
your "thin binding" would be unnecessary overhead.

> > You have implemented a very nice adapter but I'm not sure why.
>
> As indicated in _many_ previous threads,
> some people like thin bindings and some people like thick bindings.
> Some projects are best done with thin bindings and
> some projects are best done with thick bindings.

That's not the issue here.
Ada 95 library developers are not obliged to reproduce the "compromises"
incorporated into the design of the Fortran 77 language binding.
Ada 95 provides them with all of the language features required
to design a really good language binding for the BLAS library
and they should take advantage of them.

> > 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.
>
> More precisely, the thick binding (including even some code)
> would take care of calling your library.
> Certainly that is a fine strategy to follow, just not the one cited.

DGEMM is an Ada 95 procedure here -- not a Fortran 77 subroutine.
Your notion of a "thick binding" doesn't appear to apply.
But I agree.
There is no reason why an Ada 95 package shouldn't be able to {\em fuse }
the five operations in the above expression into a single procedure call.






  reply	other threads:[~2000-08-12  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         ` 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         ` Toon Moene
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   ` 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 [this message]
2000-08-12  0:00           ` tmoran
2000-08-12  0:00             ` E. Robert Tisdale
2000-08-12  0:00         ` Sam Hobbs
2000-08-11  0:00       ` How to Design an Application Programmers' Interface (API) Gautier
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-13  0:00   ` E. Robert Tisdale
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         ` Brendan Sechter
2000-08-13  0:00         ` Larry Kilgallen
2000-08-13  0:00         ` Gregory Pietsch
2000-08-13  0:00           ` E. Robert Tisdale
replies disabled

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