|
Boost : |
From: Hayati Ayguen (Ayguen_at_[hidden])
Date: 2001-08-20 04:59:06
Many aspects have to be considered when implementing efficient
matrix/vector classes. i'm unsure about development status of all the
matrix class libraries out there, but i haven't seen any library
concerning all issues.
some of the important issues are:
1- dense and sparse matrices
2- matrix type: rectangle, triangle, banded, ...
3- memory layout: c style, fortran style
4- template usage for types (there are some c style libraries only for
double)
5- expression template optimization (using operators like +, -, *, / )
6- result type propagation, when using operators
7- when no operators are used, which method names implement the
operators +, -, *, / 8- element access:
a- some are using []-operator for c-style access,
b- ()-operator for fortran-style access
c- access via iterators (important for sparse matrices)
9- which method name (or operator?) to use for transpose(), ...
i'm sure i forgot some important issues, so its to you to complete this
list!
i'm also unsure of how many of the above issues are concerned in the
"mtl-3" which is mentioned to get part of boost.
matrix classes and its interface(s) is a very important for scientific
computing and it would be a great benefit if at least the interface got
standardized. a cooperation with OON (http://www.oonumerics.org/oon/)
group should be considered.
Hayati Ayguen <Ayguen_at_[hidden]>
Sakda wrote:
>
> Anyone who has either tried to use a Matrix C++ class (or write their
> own) would probably find a standard set of interfaces useful (such as
> a member function that returns the number of columns .num_cols() or
> cols(), etc).
> Would others be interested in trying to help specify this?
> Is this a good forum for this topic?
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk