Boost logo

Boost :

From: hankel_o_fung_at_[hidden]
Date: 2001-03-23 06:51:03


--- In boost_at_y..., "Paul A. Bristow" <pbristow_at_h...> wrote:
> 1 The business of getting numbers from devices or files into
> suitable structures is messy, tiresome
> and error prone for starters.
Well, that's why there's iterator theory.

> 3 The zero or 1 based differences between C and FORTRAN (BLAS) is
> still a major practical barrier, mainly because it makes everywhere
> a minefield.
Agree. In this respect, I like the way how TNT deals with indices:
round bracketed indices like u(i), P(i,j) imply 1-based indices,
while u[i] and P[i][j] imply C-styled indices. Such notations are
very useful, because one doesn't need to check out the definitions
of the arrays to find out what the index style is. (But I wonder
if the round bracket notation can be used in an arbitrarily high
dimension.)

IMHO, it is natural to use both index styles in a single problem,
and a good array library should support both styles.
A matrix library, however, can only and should at least support
the 1-based index, because matrix indices are 1-based in math.

Yet, even if the index convention problem is fixed, we still need
to solve the row-major/column-major problem ...

To detour a little, I think it is very unfortunate that std::vector
is called a *vector*. Vectors are one dimensional arrays that
support the operations required by the definition of a vector space.
Matrices are conceptually retangular arrays that support at least
several matrix operations. std::vector hardly be called a vector.
The name "array list" used by the Java folks, although weird, is
more accurate, but I think the best name to std::vector is simply
std::array ...

I hope the Boost folks can draw a line between vectors, matrices
and arrays in their matrix & array library. Also, except for
historical reason, I hope the matrix part of the library is
called a "matrix" library rather than a "linear algebra" library
--- after all, what we now call "linear algebra" actually comprises
at least linear "algebra" (in the abstract algebra sense),
multilinear algebra and matrix analysis (analysis, not algebra!).
"Linear algebra" is simply too narrow.

[snip]
> So perhaps this matrix proposal is very important, but premature?
I wouldn't say it's premature. We already have many matrix & array
libraries. The enthusiasts already know what the implementation
difficulties are. I think it's just too hard to design an ideal
libray.

Cheers,
Hankel


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