
Boost : 
From: David Abrahams (abrahams_at_[hidden])
Date: 20010313 17:05:18
 Original Message 
From: <lums_at_[hidden]>
> It is important here to make the distinction between a linear algebra
> library and an array library. Blitz++ is an array library. MTL
> (e.g.) is a linear algebra library.
So, "Matrix Template Library" is a misnomer?
> One would expect (as is the
> case), that linear algebra operations are not as easy in an array
> library as they would be in a linear algebra library.
Okay, but what use is a matrix library without easytouse/build linear
algebra operations? That is, why would anyone want to make an "array
library" as you define the term?
> Array libraries and linear algebra libraries are easily confused
> since linear operators (matrices) are commonly represented (at least
> in the dense case) as twodimensional arrays.
>
> This distinction becomes quite obvious when developing layers of
> abstraction and concepts for a linear algebra library. Formally (and
> this comes from the precise definition that mathematicians have
> developed over the years), a linear algebra consists of a linear
> vector space (which is also formally defined) plus a set of linear
> transformations that can be applied to that space. I think the
> relationships between these entities has been well specified (both by
> mathematicians and more relevant to a C++ library, by the generic
> programming group at RPI). Arrays do not appear anywhere at this
> layer. In fact, classic two dimensional arrays are only a small part
> of what is required in the representation layer of a linear algebra
> library.
>
> I have spent a good part of my professional career thinking about
> these issues and they are quite nontrivial when you really start
> digging into them. It does not seem difficult at first  and
> indeed, the world is full of notverygood "matrix libraries" because
> they are so easy to construct. Most such libraries I would not call
> linear algebra libraries because most such libraries do not have any
> kind of conceptual analysis of the linear algebra problem domain (so
> I use the name "matrix library").
Can you try to make this a bit more concrete? Examples
illustrating/contrasting the strengths of each type of library would help a
lot.
> At the risk of tacky selfpromotion, I would recommend Jeremy Siek's
> MS thesis (about MTL) as an example of the kinds of analysis (and
> implementation) that are required for a real linear algebra library:
> http://www.lsc.nd.edu/downloads/research/mtl/papers/thesis.pdf
I've been meaning to read that  I guess it's time.
Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk