Boost logo

Boost :

From: Jeremy Siek (jsiek_at_[hidden])
Date: 2001-06-11 14:10:09

The iterator interfaces that I posted were for this "Matrix as
doubley-indexed values" abstraction level that Andrew is talking about in
the paragraph below.

This abstraction is at a slightly higher level than arrays (or
multi-dimensional arrays) since it corresponds directly to the matrix as a
mathematical entity.

We don't have to force different abstraction levels into one interface...
that would be quite unnatural. Instead we need several interfaces, one for
each abstraction level. The interfaces will be similar is some respects
(iterators will play a role in each) but there will also be differences.
For example, the "row()" and "column()" functions are important for the
matrix layer, but not for the array layer.

On Sun, 10 Jun 2001, Andrew Lumsdaine wrote:
> At the next level down, a matrix has doubly-indexed values. How should
> those be traversed? Note that not all matrices need to provide this
> interface in order to provide operator*(). For instance, the matrix-free
> operators I mentioned in an email long ago can apply a linear transformation
> via operator*() but do not store any values. I think at this level, for
> matrices that do have doubly-indexed values, it might be appropriate to have
> some kind of interface that provides access to the values and to the
> indices. I am not sure I like row and column though, those are to weighted.
> One could take a mathematical point of view and talk about the range index
> and the domain index (i.e., the indices of the vector spaces that the
> operator is mapping between -- this is really where the indices in the
> matrix come from). Matrix is probably the best name for the thing at this
> layer.

 Jeremy Siek www:
 Ph.D. Candidate, IU B'ton email: jsiek_at_[hidden]
 Summer Manager, AT&T Research phone: (973) 360-8185

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