Boost logo

Boost :

From: jsiek_at_[hidden]
Date: 2000-01-04 20:03:49


Guess I'm obliged to put my $.02 cents in on this one :)

Paul Baxter writes:
> www.oonumerics.org/oon/ has a nice summary of well known packages
>
> Blitz, TNT, MTL and SVMT are ones I've had a look at.
>
> There are several others there also of possible use.

When discussing numerical libraries it's a good idea to keep in mind
the differences between linear algebra libraries (like MTL, TNT, SL++,
 SVMT, and ESI) and array libraries (like Blitz, POOMA, and
A++/P++). There is not much overlap in functionality, and they really
address different sets of abstractions. Also, just within linear
algebra libraries there is often a distinction made between low-level
(e.g. BLAS) and higher-level (e.g. LAPACK) libraries. The low-level
libraries handle simple linear algebra matrix and vector operations,
while the higher-level libraries are equation solvers, etc.

> Since this is such a well catered-for area of programming these might be
> sufficient.
>
> If boost does consider it a worthy addition maybe the author of one of these
> packages might be interested in joining boost and contributing their
> software for comments etc (I know Bob Tisdale is quite vocal and helpful
> regarding SVMT and appears interested in providing it as a C++
> 'pseudo-standard' API ref: http://www.netwood.net/~edwin/svmt/#proposal )

I would *not* suggest SVMT as a model for a boost linear algebra
library, as it is not a good example of modern C++ design. I would
also *not* suggest TNT and ESI for the same reason. SL++ is quite a
bit better, but it is GPL. MTL is also quite good ;) but it is not
free for commercial use.

Perhaps a worthwhile initial endeavor would be to look at defining a
*generic* interface for matrices and vectors (as we have started to do
with graphs). It would definitely be desirable to cooperate with
people in the numerical community on this, though that community has
traditionally held widely varying views, so it may be difficult,
especially since many have not yet bought into the C++ techniques
necessary to do a generic interface right. However, there are several
groups that do understand generic programming.

One BIG question would be whether to use operator overloading in the
interface. This has serious repercussions in performance and
implementation complexity.

Cheers,

Jeremy

----------------------------------------------------------------------
 Jeremy Siek
 Ph.D. Candidate email: jsiek_at_[hidden]
 Univ. of Notre Dame work phone: (650) 933-8724
 and cell phone: (415) 377-5814
 C++ Library & Compiler Group fax: (650) 932-0127
 SGI www: http://www.lsc.nd.edu/~jsiek/
----------------------------------------------------------------------


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk