
Boost : 
From: Jeremy Siek (jsiek_at_[hidden])
Date: 20010611 14:10:09
The iterator interfaces that I posted were for this "Matrix as
doubleyindexed values" abstraction level that Andrew is talking about in
the paragraph below.
This abstraction is at a slightly higher level than arrays (or
multidimensional 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 doublyindexed values. How should
> those be traversed? Note that not all matrices need to provide this
> interface in order to provide operator*(). For instance, the matrixfree
> 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 doublyindexed 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: http://www.lsc.nd.edu/~jsiek/
Ph.D. Candidate, IU B'ton email: jsiek_at_[hidden]
Summer Manager, AT&T Research phone: (973) 3608185

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