|
Boost : |
From: Ronald Garcia (rgarcia4_at_[hidden])
Date: 2001-03-13 09:37:01
>>>>> "w" == walter <walter_at_[hidden]> writes:
w> You are not alone ;-). We are currently developing a matrix
w> library targeted mainly to implement classical numerical
w> procedures the object oriented way.
For the sake of clarity, I should mention what kind of library I am
working on. Primarily, I'm developing a multidimensional array library,
rather than a matrix library per se. That is, things are more similar
to Blitz++ than MTL, though access to matrix functionality is
definitely a requirement.
I am also focussing strongly upon portability across C++ compilers.
Performance must be reasonable, but not in a manner such that some
platforms cannot make use of it. The reasoning is that if you need a
high-performance multi-array library, Blitz++ is already available;
likewise, if you need a high performance matrix library, MTL is
already available (not to mention other great libraries such as
POOMA). But there is a need for a library that can be used rather
ubiquitously.
w> I currently see the following points to discuss when developing
w> a matrix library:
w> - support for mathematical notation As Toon Knapen mentioned,
w> one should be able to write expressions with vectors and
w> matrices in a form like y = A * x + b.
w> - efficiency Next point is, that a matrix library has to
w> compare with existing libraries wrt performance. So first one
w> has no other option than to support expression templates. This
w> eventually involves the need to incorporate a meta meta method
w> like PETE to generate templates in C++! But this does not seem
w> to be the whole story. As far as I understand Todd Veldhuizen's
w> Blitz++, one has to implement very clever evaluation kernels to
w> get the most out of the box.
I think that expression templates/mathematical notation should be
optional. I've seen some previous work on this kind of thing and I
thikn it can be provided as an extra layer upon a procedural interface
without loss of efficiency.
w> - functionality We restricted our interest to support BLAS like
w> functionality. But who knows, what else one can do with
w> matrices and vectors...
To emphasize again, my interest is in a general N-dimensional array
type rather than just a matrix, which does change the design a bit.
w> -compatibility This is an interesting question: should a boost
w> matrix library run under MSVC for example?
IMHO, absolutely! As I had mentioned previously, there already exist
high-performance high quality libraries that do not run under MSVC.
MSVC is an important target.
ron
w> List-Unsubscribe: <mailto:boost-unsubscribe_at_[hidden]>
w> Your use of Yahoo! Groups is subject to
w> http://docs.yahoo.com/info/terms/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk