Boost logo

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