Boost logo

Boost :

From: David Abrahams (abrahams_at_[hidden])
Date: 2001-03-12 19:46:31

----- Original Message -----
From: <walter_at_[hidden]>
> > _ Expression Templates for performant and easy interface (e.g. `y =
> A *
> > x + b` without tmp's)
> The only vague alternative approach seems to be lazy evaluation
> (without expression templates).

Yes, and I have been wondering recently how much of a performance boost is
achieved through expression templates. After all, if matrices are big, the
cost of operations should significantly outweigh the cost of runtime
expression analysis. I know that some people are using the analogous
technique to expression-templates in Python (I love the parallels to generic
programming in Python -- it's so.. cute), so it must be a significant win
even at runtime.

> Mathematical notation is a necessity, otherwise we should stay with
> Fortran :-).
> > _ dense and sparse matrices
> Sparse matrices seem somewhat controversial to me. BLAS for example
> handles only certain types of dense matrices like general, symmetric,
> banded etc. BLAS does not support sparse matrices.

For the work I will be doing, sparse matrices are an absolute neccessity.
They also seem to be supported by a large fraction of the C++ numerics
libraries I've seen, indicating that other people see them as mainstream.
Isn't BLAS, like, centuries old or something (spoken in valley-boy ingenue
voice)? See also

> > _ support for slices / subarrays
> Yes.
> > _ common linear algebra operations (addition, multiplication of
> > matrices, ....)
> Yes, to be more specific: a boost matrix library should enable us to
> emulate BLAS.
> > There are already some libraries doing all/some of the above ...
> ... very well :-).
> IMHO libraries to mention are:
> Blitz++
> One may doubt, whether we are able to determine goals, which justify
> a boost approach to a new matrix library.

My very brief experience shows that at the very least, we should consider
complete documentation to justify an effort. The question remains whether
there is any non-redundant code to be written. I would appreciate hearing


Boost list run by bdawes at, gregod at, cpdaniel at, john at