The Matrix to end all Matrix classes (Let's dream!)
Craig Black
craigblack2 at cox.net
Tue Nov 20 06:57:58 PST 2007
> Requirements:
> 1. Must be compatible with future multi-dimensional array syntax such as
> double [7,5] m;
> 2. Must be theoretically capable of optimal performance.
> 3. Needs to support slices. This means we also need to support strided
> vectors. Therefore we also need matrix slices, and matrix references.
> Probably distinguishing between the T[] and T[new] concepts.
> 4. For storage we need packed, triangular, symmetric, banded, and sparse
> matrix support. (Possibly even 'calculated' matrix support, for
> user-defined matrix types which generate entries on-demand).
> 5. Can be generalized to tensors.
> 6. Nice error messages.
Another requirement would be elegant syntax that "fits" with D syntax. Is
that what you were trying to communicate with requirement 1? If I remember
correctly doesn't BLAS syntax look a little funny because it relies on
mixins?
If you want requirement 2 then you must be able to leverage any available
GPU's or GPGPU's. This is going to be especially useful when Nvidia and AMD
release their GPU-like processors that will be able to do double precision
floating point operations. Nvidia's (yet unnamed) processor is due out in
December. AMD's Firestorm is due in the first quarter of '08. My company
has plans to develop a matrix library for physics simulations that will
support these new processors. However, if one was already available for us
then we wouldn't need to develop it.
-Craig
More information about the Digitalmars-d
mailing list