|
Boost : |
From: Jeremy Siek (jsiek_at_[hidden])
Date: 2001-03-30 00:20:22
I've just uploaded the MTL expression template prototype code into
Files/numeric/mtl3.tar.gz.
The code is far from complete, but does handle a number of expressions for
both sparse and dense matrices and vectors (and mixtures of sparse and
dense), and it handles row and column major matrices.
For the next month or so I probably won't have time to work on it, but I
figured the code might provide ideas for others working on ET stuff.
One especially cool/wild aspect of the code is that there is no extra
algorithm code for matrices, they are treated a lot like vectors (whose
elements happen to also be row or column vectors). Since there are
expression template operators defined for vectors, each operator used in
the outer loop expands to create the inner loop. This is explained here:
http://www.lsc.nd.edu/~jsiek/mxtl.html
The other major aspect of the code is how sparse vectors are traversed.
The key to this is the use of iterator begin/end ranges that get combined
according to the expression tree.
The code currently compiles for KCC and g++, and most definitely will not
compile for VC++ and Borland.
There is zero documentation, so anyone brave enough to look at it should
start with the examples and test code to get a feel for the usage (which
is pretty obvious), and then dive into the code.
Cheers,
Jeremy
----------------------------------------------------------------------
Jeremy Siek www: http://www.lsc.nd.edu/~jsiek/
Ph.D. Candidate email: jsiek_at_[hidden]
Univ. of Notre Dame work phone: (219) 631-3906
----------------------------------------------------------------------
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk