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