Serguey Zefirov writes:


Right now I explore the possibilities of building the prototype
for game physics library in Haskell.


One of intermediate steps is to build linear algebra library for
further utilisation. But, here I face some difficulties.
...
In Haskell I should define different operators, something like `v3mulm3x3`,
`v3mulm3x4`. This is somewhat inconvenient, given that I expect to utilize
Vec2,3,4 and Mat(3,4)x(3,4) parametrized by Double and Float.


So the question is: what other people do in situation like this and is there
any paper(s) on linear algebra library design?

Perhaps think more, in a *detailed* way on all mathematical objects you
shall use, and find common parameterizations.
Will you use lists or arrays?
Do you need to separate the vector types with different dimensions?
(Note that if they are lists, summing them or computing scalar products
thereof will require some folds / zips /maps without ever using "N").


Then, design the appropriate general classes and overload your math.

Index-less, list-based linear algebra packages have been constructed
a few times. There is CLAS of Thorsten Zoerner, in Clean - a language
similar to Haskell.


See HBlas of Hal Daume for Haskell. (But you will need CLAPACK; this
is a serious, optimized stuff).


Do you need an elegant toy, or a fast number cruncher?

Jerzy Karczmarczuk


_______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to