
On 03/10/2005 01:31 AM, Erik Wien wrote: [snip]
For what it's worth; If it turns out there is an interest in such a class, I have already written one (with that exact declaration in fact) I'd be more that willing to donate to boost. It can currently do addition, subtraction and multiplication of matrices, as well as provide functions for a lot of vector and matrix operations like generation of rotation matrices, taking the length of a vector and so on and so forth.
Isn't a matrix a "rank 2". I'm using the term "rank" because that's an apl term, and I'm a fan ;) : http://www.aplusdev.org/APlusRefV2_4.html#17 Anyway, why not a template: template < typename T, typename Shape > class array { ... }; where Shape is a vector_c<unsigned, S1,S2,...,Sn> to create a rank n array with S1 is length (or dimension) of 1st axis, S2 the length of 2nd axis, ... ? The strides of such a "compile-time specified shape" array could also be calculated at compile time as shown in the test_partial_product function of fold_seq_test.cpp in fold_seq_test.zip in http://boost-sandbox.sourceforge.net/vault/.